본문 바로가기

개발자 레니는 지금 -/소프트웨어와 함께

[ Python ] Pickle! binary를 file에 자료형 그대로 저장하기!



Python

Pickle! binary를 file에 자료형 그대로 저장하기!








 시작 전 테스트환경 살피기

   Time

    2017년 08월 18일

   OS

    Linux(Ubuntu 16.04 LTS)

   Language

    Python 2.7



일반 텍스트를 파일로 저장할 때는 파일 입출력을 이용하면 되지만, list 나 class같은 자료형을 일반 입출력을 이용하여 저장하거나 불러올 수 없다.

 

>>> testList=[1, 2, 3, 4]

>>> with open("test.txt", "wb") as f: f.write(testList)

... 

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: argument 1 must be string or buffer, not list 



파이썬에서는 이와같은 자료형들을 저장하기 위하여 pickle이라는 모듈을 제공한다.




Pickle



- class, list, tuple, 사용자가 정의한 객체 등등 다양한 자료형을 형태 그대로 파일에 입출력할 수 있도록 도와준다.

- 피클 사용시 주의하여 할 점은 읽고 쓰는 파일을 무조건 binary 형식으로 해야한다는 것 이다.



import pickle

f=open( 파일명, 데이터형식 )

pickle.dump( 데이터, 파일 )        # 데이터를 파일에 입력하는 경우

변수=pickle.load( 파일 )             # 파일에 있는 데이터를 변수에 입력하여 사용하는경우

f.close()




 

>>> import pickle

>>> testList=[1, 2, 3, 4]

>>> with open("test.txt", "wb") as f: pickle.dump(testList, f)

... 


>>> with open("test.txt", "rb") as f: data=pickle.load(f)

... 

>>> data

[1, 2, 3, 4]