파이썬
모듈
pickle
#
Find similar titles
- (rev. 5)
- lca
Structured data
- Category
- Programming
Table of Contents
Pickle #
파이썬을 사용할때 우리는 주로 텍스트를 파일로 저장하는 방법인 표준 입출력방식을 사용하는 것이 일반적이다. 이에 반해 주로 사용하는 리스트나 클래스와 같은 텍스트가 아닌 자료형은 일반적인 파일 입출력방식으로 데이터를 저장하거나 불러올 수가 없다. 따라서 파이썬에서는 이와 같은 텍스트 이외의 자료형을 파일로 저장하기 위하여 "pickle" 이라는 표준 라이브러리를 제공한다.
사용형식 : pickle.dump(데이터,파일)
사용형식 : 변수 = pickle.load(파일)
LIST 를 일반 입출력으로 저장할 때의 오류 #
다음과 같이 일반 입출력인 write, read 방식으로 리스트를 저장하게 되면 다음과 같은 TypeError 가 발생한다. 왜냐하면 일반 입출력의 경우는 일반 텍스트(String)값만을 저장할 수 있기 때문이다.
>> List = ['a', 'b', 'c']
>> with open('text.txt', 'w') as f:
f.write(List)
Traceback (most recent call last):
File "<pyshell#5>", line 2, in <module>
f.write(LIST)
TypeError: must be str, not list
pickle을 이용한 List 의 저장과 불러오기 #
pickle을 이용하여 List를 파일로 저장할 때는 dump()를 사용하며, 다시 읽어들일 때에는 load()함수를 사용하여 List를 읽어들인다.
>> import pickle
>> List = ['a', 'b', 'c']
>> with open('test.txt','wb') as f:
pickle.dump(LIST,f)
>> with open('test.txt','rb') as f:
data=pickle.load(f)
>> data
['a', 'b', 'c']
주의할 점! #
단, pickle 모듈을 사용할 때 주의할 점은 데이터를 저장, 불러올 때에 파일 형식을 바이트(b) 형식으로 읽고 써야 한다는 점이다.
file = open('text.txt','wb')
file = open('text.txt','rb')
pickle의 적용 가능한 객체 #
pickle로 저장할 수 있는 대상은 파이썬 객체라면 모두 적용 가능하다. List, dictionary 와 같은 기본 자료형은 물론, 사용자가 정의한 Class 객체에 대해서도 pickle 모듈의 적용이 가능하다.
1. Dictionary
>> import pickle
>> favorite_color = { "lion": "yellow", "kitty": "red" }
>> pickle.dump( favorite_color, open( "save.p", "wb" ) )
>> favorite_color = pickle.load( open( "save.p", "rb" ) )
2. Class
>> import pickle
>> class test:
var='data'
>> a = test()
>> save_file = open('test.pickle','wb')
>> pickle.dump(a, save_file)
>> save_file.close()
>> read_file = open('test.pickle','rb')
>> b = pickle.load(read_file)
>> read_file.close()
>> b.var
'data'
Suggested Pages #
- 0.025 Java
- 0.025 PyPy
- 0.025 자바
- 0.025 C#
- 0.025 객체 지향
- 0.025 C
- 0.025 Pyston
- 0.025 Object-oriented
- 0.025 IronPython
- 0.025 컴파일
- More suggestions...