Ich versuche Objekte mit pickle
Modul zu speichern und zu laden .
Zuerst erkläre ich meine Objekte:
>>> class Fruits:pass
...
>>> banana = Fruits()
>>> banana.color = 'yellow'
>>> banana.value = 30
Danach öffne ich eine Datei mit dem Namen 'Fruits.obj' (zuvor habe ich eine neue TXT-Datei erstellt und 'Fruits.obj' umbenannt):
>>> import pickle
>>> filehandler = open(b"Fruits.obj","wb")
>>> pickle.dump(banana,filehandler)
Danach schließe ich meine Sitzung und beginne eine neue und setze die nächste (versuche auf das Objekt zuzugreifen, das gespeichert werden soll):
file = open("Fruits.obj",'r')
object_file = pickle.load(file)
Aber ich habe diese Nachricht:
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
Ich weiß nicht, was ich tun soll, weil ich diese Nachricht nicht verstehe. Weiß jemand, wie ich mein Objekt 'Banane' laden kann? Danke dir!
EDIT: Wie einige von Ihnen vorgeschlagen haben, habe ich gesagt:
>>> import pickle
>>> file = open("Fruits.obj",'rb')
Es gab kein Problem, aber das nächste, das ich sagte, war:
>>> object_file = pickle.load(file)
Und ich habe Fehler:
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