프로그래밍/[ Python ]

[Python] pickle (데이터 저장 및 불러오기)

gooooooood 2020. 6. 2. 18:40
반응형

이번 포스트에서는 정말 간단하게 python에 pickle을 활용하여 데이터를 저장하고, 저장된 데이터를 불러오는 코드를 알아보겠습니다.

 

pickle은 파이썬의 모든 객체(object)에 대해서 있는 그대로 저장할 수 있는 모듈입니다. pickle은 객체를 바이너리 파일에 저장하기 때문에 아래와 같이 파일을 읽을 때 'wb', 'rb' 처럼 바이너리 형식을 사용해야 합니다.

 

pickle.dump / pickle.load

import pickle

temp_dict = {'name': 'S', 'id': 1}

# 데이터 저장
with open('filename.pkl', 'wb') as f:
	pickle.dump(temp_dict, f, protocol=pickle.HIGHEST_PROTOCOL)
    
# 데이터 로드
with open('filename.pkl', 'rb') as f:
	data = pickle.load(f)

 

위 코드를 활용하여 간단하게 dict 형태의 데이터를 'filename.pkl' 파일로 저장하고 불러올 수 있습니다.

 

여기서 한 주의할 점은 protocol 부분인데요, python 버전에 따라서 지원하는 protocol이 다릅니다.

 

따라서 본인이 사용하는 python 버전에 유의하여 파라미터를 사용해야 합니다. (python 2.x 버전에서는 protocol이 0~2까지만 지원된다고 합니다.)

 

추가적으로 pandas DataFrame도 아래의 코드를 활용해서 쉽게 데이터를 관리할 수 있습니다.

 

df.to_pickle / pd.read_pickle

import pickle
import pandas as pd

temp = pd.DataFrame({'a':[1], 'b':[2]})

# 데이터 저장
temp.to_pickle('filename.pkl')

# 데이터 로드
data = pd.read_pickle('filename.pkl')
반응형