본문 바로가기

컴퓨터/Python

pickle

리스트나 클래스를 파일에 저장할 때 사용

바이너리로 읽어야 한다

>>> 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'

'컴퓨터 > Python' 카테고리의 다른 글

압축파일 해제  (0) 2013.08.09
유닉스 패스워드 크래거  (0) 2013.08.07
파일 입출력  (0) 2013.07.26
포맷팅  (0) 2013.07.26
출력  (0) 2013.07.25