Python/Utils

파이썬 피클(pickle) 모듈로 리스트, 딕셔너리 객체 파일 저장

jimmy_AI 2021. 11. 11. 00:24
반응형

파이썬 피클 라이브러리 사용 방법

파이썬에서 작업을 하다가 종료를 해야할 때,

이전 작업에서 저장했던 리스트, 딕셔너리 등 객체를 저장하고

다음 작업 때 불러오기를 원하는 경우가 있을 것입니다.

 

여러 가지 방법으로 객체 저장을 수행할 수 있겠지만

이번 포스팅에서는 피클(pickle) 모듈로 아주 간단하게

객체를 저장하고 불러오는 방법을 말씀드리겠습니다.

 

 

pickle 모듈로 파이썬 객체 저장하기 - dump

import pickle
list_ex = [1, 2, 'a', 'b']
dict_ex = {'a' : 1, 'b' : 2}

# 저장 버전 1
with open("list.pickle","w") as f:
    pickle.dump(list_ex, f)
    
# 저장 버전 2 (바이너리 파일)
with open("dict.pickle","wb") as f:
    pickle.dump(dict_ex, f)

위의 코드처럼 pickle 라이브러리를 import 한 뒤,

원하는 디렉토리에 원하는 파일 이름(pickle 혹은 pkl 확장자)을 지정해주시고,

dump 함수를 이용하여 저장할 객체를 지정하며 앞에서 설정한 디렉토리에

pickle 파일 형태로 저장하게 됩니다.

 

여기서 open에서 'w' 모드와 'wb' 모드 모두를 사용 가능한데,

'wb'는 바이너리 파일 형식을 의미하고,

불러오기 과정에서 각각 'r' 과 'rb' 모드로 불러와야한다는 차이점이 있습니다.

반응형

pickle 모듈로 파이썬 객체 불러오기 - load

import pickle

# 불러오기 버전 1
with open("list.pickle","r") as f:
    list_ex = pickle.load(f)
    
# 불러오기 버전 2 (바이너리 파일)
with open("dict.pickle","rb") as f:
    dict_ex = pickle.load(f)

pickle 라이브러리로 저장했던 파일을 불러오는 과정도 매우 간단합니다.

파일을 저장했던 디렉토리에서 load 함수로 불러오기를 해주시면 간단하게 이전 작업에서

저장했던 리스트, 딕셔너리 등의 객체 파일들을 불러오실 수 있습니다.

 

여기서 'w' 모드로 저장했던 파일은 'r' 모드로, 'wb'는 'rb' 불러오기

해주시는 것이 좋다는 점을 기억해두세요!

 

참고로, 리스트, 딕셔너리 뿐 아니라 class 형태 객체, 머신러닝 모델 등

복잡한 객체 형태들도 모두 pickle 모듈로 저장 및 불러오기가 가능합니다!

 

피클통에 담겨있는 피클처럼 pickle 모듈에서는

파이썬 객체를 잘 포장하여 다음 작업 때 그대로 다시 사용하게 해주는 유용한 모듈이니

꼭 기억해두셨다가 필요할때마다 잘 활용하신다면 좋겠습니다.