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