Saya mencoba untuk menyimpan dan memuat objek menggunakan pickle
modul.
Pertama saya mendeklarasikan objek saya:
>>> class Fruits:pass
...
>>> banana = Fruits()
>>> banana.color = 'yellow'
>>> banana.value = 30
Setelah itu saya membuka file bernama 'Fruits.obj' (sebelumnya saya membuat file .txt baru dan saya mengganti nama 'Fruits.obj'):
>>> import pickle
>>> filehandler = open(b"Fruits.obj","wb")
>>> pickle.dump(banana,filehandler)
Setelah melakukan ini saya menutup sesi saya dan saya memulai yang baru dan saya meletakkan sesi berikutnya (mencoba mengakses ke objek yang seharusnya disimpan):
file = open("Fruits.obj",'r')
object_file = pickle.load(file)
Tapi saya punya pesan ini:
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
Saya tidak tahu harus berbuat apa karena saya tidak mengerti pesan ini. Adakah yang tahu Bagaimana saya bisa memuat objek saya 'banana'? Terima kasih!
EDIT: Seperti yang disarankan beberapa dari Anda, saya katakan:
>>> import pickle
>>> file = open("Fruits.obj",'rb')
Tidak ada masalah, tapi yang saya taruh selanjutnya adalah:
>>> object_file = pickle.load(file)
Dan saya mengalami kesalahan:
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