Сохранение и загрузка объектов и использование pickle

Я пытаюсь сохранять и загружать объекты с помощью модуля 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
91
задан martineau 10 April 2017 в 11:24
поделиться