मैं pickle
मॉड्यूल का उपयोग करके वस्तुओं को बचाने और लोड करने की कोशिश कर रहा हूं ।
पहले मैं अपनी वस्तुओं की घोषणा करता हूं:
>>> class Fruits:pass
...
>>> banana = Fruits()
>>> banana.color = 'yellow'
>>> banana.value = 30
उसके बाद मैंने 'Fruit.obj' नामक एक फ़ाइल खोली (पहले मैंने एक नई .txt फ़ाइल बनाई और मैंने 'Fruit.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