pickle
Modülü kullanarak nesneleri kaydetmeye ve yüklemeye çalışıyorum .
Önce nesnelerimi beyan ederim:
>>> class Fruits:pass
...
>>> banana = Fruits()
>>> banana.color = 'yellow'
>>> banana.value = 30
Bundan sonra 'Fruits.obj' adlı bir dosyayı açtım (daha önce yeni bir .txt dosyası oluşturdum ve 'Fruits.obj' adını değiştirdim):
>>> import pickle
>>> filehandler = open(b"Fruits.obj","wb")
>>> pickle.dump(banana,filehandler)
Bunu yaptıktan sonra oturumumu kapatıyorum ve yenisine başladım ve bir sonrakini koydum (kaydedilmesi gereken nesneye erişmeye çalışıyorum):
file = open("Fruits.obj",'r')
object_file = pickle.load(file)
Ama şu mesajı aldım:
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
Ne yapacağımı bilmiyorum çünkü bu mesajı anlamıyorum. 'Muz' nesnemi nasıl yükleyebileceğimi bilen var mı? Teşekkür ederim!
DÜZENLEME: Bazılarınızın iddia ettiği gibi şunu söylüyorum:
>>> import pickle
>>> file = open("Fruits.obj",'rb')
Sorun olmadı, ancak sonraki koyduğum şey şuydu:
>>> object_file = pickle.load(file)
Ve hatam var:
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