Я пытаюсь сохранять и загружать объекты с помощью pickle
модуля.
Сначала объявляю свои объекты:
>>> class Fruits:pass
...
>>> banana = Fruits()
>>> banana.color = 'yellow'
>>> banana.value = 30
После этого я открываю файл с именем Fruits.obj (ранее я создал новый файл .txt и переименовал его в Fruits.obj):
>>> import pickle
>>> filehandler = open(b"Fruits.obj","wb")
>>> pickle.dump(banana,filehandler)
После этого я закрываю свой сеанс, начинаю новый и помещаю следующий (пытаюсь получить доступ к объекту, который должен быть сохранен):
file = open("Fruits.obj",'r')
object_file = pickle.load(file)
Но у меня есть такое сообщение:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python31\lib\pickle.py", line 1365, in load
encoding=encoding, errors=errors).load()
ValueError: read() from the underlying stream did notreturn bytes
Я не знаю, что делать, потому что не понимаю этого сообщения. Кто-нибудь знает, как я могу загрузить свой объект "банан"? Спасибо!
РЕДАКТИРОВАТЬ: Как некоторые из вас предположили, я поставил:
>>> import pickle
>>> file = open("Fruits.obj",'rb')
Проблем не было, но я поставил следующее:
>>> object_file = pickle.load(file)
И у меня ошибка:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python31\lib\pickle.py", line 1365, in load
encoding=encoding, errors=errors).load()
EOFError