Найти - Пользователи
Полная версия: pickle Как отличить binary файл от не binary
Начало » Python для новичков » pickle Как отличить binary файл от не binary
1
doza_and
имею файл на диске полученый cPickle.dump(obj,f) или cPickle.dump(obj,f,2)

Как узнать как его читать?

Проблема в том что текстовый файл прекрасно читается двоичным анпиклером. Конечно неправильно.

Откуда проблема:
Приложение сбрасывает данные в двоичном формате, но иногда для целей редактирования хочется иметь и текстовый формат. Все время иметь такой формат неудобно - большие файлы и долго читаются. Можно договориться менять расширение или что-то подобное, но это конечно не очень удобно, поскольку опирается на соглашения которые половина разработчиков переврет и забудет через 3 недели.

Хотелось както так Load(“aa.dat”) и чтобы оно само разобралось что в файле (в файле конечно один объект).
pill
Не смог проблему воспроизвести cPickle.load все хорошо читает.
Или я чего-то не понял…?
>>> import cPickle
>>> obj = {1: 11, 2: 22, 3: [1,2,3,'123', u'boo']}
>>> with open('TEST_TXT', 'w') as f:
... cPickle.dump(obj, f)
>>> with open('TEST_TXT') as f:
... cPickle.load(f)
0: {1: 11, 2: 22, 3: [1, 2, 3, '123', u'boo']}
>>> with open('TEST_BIN', 'wb') as f:
... cPickle.dump(obj, f, 2)
>>> with open('TEST_BIN') as f:
... cPickle.load(f)
2: {1: 11, 2: 22, 3: [1, 2, 3, '123', u'boo']}
>>>
Андрей Светлов
+1
doza_and
pill
Не смог проблему воспроизвести cPickle.load
Спасибо большое вы мне очень помогли.
Было: одно приложение
with open('TEST_TXT', 'w') as f:
cPickle.dump(obj, f)
второе из за недостатка данных
with open('TEST_TXT', 'rb') as f:
obj=cPickle.load( f)
приводило к забавному эффекту - объект грузился … но как список строк
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB