Я намагаюся зберігати та завантажувати об'єкти за допомогою 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