머신러닝 및 딥러닝/Python

[파이썬] 🥒피클 pickle - 파일 저장하기, 불러오기

삡삐in오즈 2022. 10. 5. 09:15
728x90
반응형

 

pickle이란?

직렬화. 출처: microsoft learn

'pickle'은 파이썬 객체를 파일로 저장하고 불러오는데 쓰이는 모듈입니다. 

예를 들어 작업 중인 파이썬 객체를 저장해 두고 나중에 이어서 작업하고 싶을 경우 사용하면 좋은 모듈입니다. 

같은 경우에는 데이터 분석 중 정리, 분석, 변환 과정을 거친 배열을 피클 모듈을 사용해  파일로 저장한 후 다음 작업 때 불러와 쓴 경우가 많습니다.

 

파이썬 객체를 파일로 변환하는 과정은 Pickling (피클링)이라고 하고 반대로 파일을 불러올 경우 Unpickling이라고 합니다. 

출처: pythontic.com


pickle 활용법

먼저 피클 모듈을 아래와 같이 불러옵니다.

import pickle

 

파일 저장하기: 피클링할 경우 (파이썬 객체 → 파일) pickle.dump(object, file)

파일 불러오기: 언피클링할 경우 (파일 파이썬 객체) pickle.load(file)

 


예제

 

아래 예제에서 my_dict를 파일로 저장한 후, 다시 불러오기를 했습니다.

open() 함수를 사용하여 파일을 생성하고 첫 번째 파라미터에서 파일명과 path를 지정해줍니다.

파일을 저장하는 경우 "wb" (write, binary) 모드를, 파일을 불러오는 경우 읽는 모드 "rb" (read, binary) 사용해야합니다. 

 

import pickle

my_dict = {'name':'harry', 'age':21, 'friends':['Ron', 'Hermione']}

# 파일로 저장
with open('my_dict.pkl', 'wb') as f:
    pickle.dump(my_dict, f)
    
# 파일 불러오기
with open('my_dict.pkl', 'rb') as f:
    loaded_dict = pickle.load(f)
    
print(loaded_dict)
>> {'name': 'harry', 'age': 21, 'friends': ['Ron', 'Hermione']}

 

아래와 같이 한 줄로도 가능합니다.

pickle.dump(my_dict, open('my_dict2.pkl', 'wb'))
pickle.load(open('my_dict2.pkl', 'rb'))

 

 

 

728x90
반응형