리스트나 클래스를 파일에 저장할 때 사용
바이너리로 읽어야 한다
>>> colors = ['red', 'green', 'black']
>>> colors
['red', 'green', 'black']
pickle 모듈의 dump() 함수를 이용해 colors를 파일에 저장
>>> import pickle
>>> f = open('colors', 'wb')
>>> pickle.dump(colors, f)
>>> f.close()
colors를 삭제한 후
load() 함수를 이용해 파이썬 객체를 읽음
>>> del colors
>>> colors
Traceback (most recent call last):
File "<pyshell#169>", line 1, in <module>
colors
NameError: name 'colors' is not defined
>>> f = open('colors', 'rb')
>>> colors = pickle.load(f)
>>> f.close()
>>> colors
['red', 'green', 'black']
pickle로 사용자가 정의한 클래스 객체도 가능
>>> class test:
var = None
>>> a = test()
>>> a.var = 'Test'
>>> f = open('test', 'wb')
>>> pickle.dump(a, f)
>>> f.close()
>>> del a
>>> a.var
Traceback (most recent call last):
File "<pyshell#183>", line 1, in <module>
a.var
NameError: name 'a' is not defined
>>> f = open('test', 'rb')
>>> a = pickle.load(f)
>>> f.close()
>>> a
<__main__.test object at 0x103750b10>
>>> a.var
'Test'