728x90
Pickle 모듈은 파이썬 객체를 직렬화(serialize)하여 파일로 저장하고, 나중에 다시 불러올 수 있게 해주는 유용한 도구다. 이 과정을 통해 파이썬 프로그램의 상태를 지속적으로 유지할 수 있으며, 특히 모델 학습 결과나 복잡한 데이터 구조를 저장하는 데 활용된다.
그러나 pickle은 대용량 데이터 처리에는 적합하지 않으며, 대용량 데이터는. txt,. csv,. json 형식으로 저장하는 것이 더 효율적이다.
Pickle 기본 개념
영속성(persistence)
파이썬 객체는 메모리에 상주하며, 파이썬 인터프리터가 종료되면 메모리와 함께 사라진다. Pickle은 이러한 객체들을 파일에 저장하여 프로그램 종료 후에도 데이터를 유지할 수 있게 한다.
직렬화(Serialization)
Pickle 모듈을 사용하면 파이썬 객체를 직렬화하여 바이너리 형식으로 저장할 수 있다. 이는 객체를 변환 없이 그대로 파일로 저장하고 다시 불러오는 작업을 쉽게 한다.
주요 기능
객체 저장(pickle dump)
import pickle
f = open('list.pickle', 'wb') # pickle은 파이썬에 특화된 바이너리 파일
test = [1,2,3,4,5]
pickle.dump(test, f) # test를 f라는 저장소에 저장한다.
f.close
객체 읽기(pickle load)
f = open('list.pickle', 'rb') # read binary
test_pickle = pickle.load(f)
print(test_pickle)
f.close
리스트 저장 및 불러오기
import pickle
# 리스트형
data = ['A', 'B', 'C']
# 파일 저장
with open('list.pkl', 'wb') as f:
pickle.dump(data, f)
# 파일 읽기
with open("list.pkl", 'rb') as f:
data = pickle.load(f)
type(data)
>>> list
data
>>> ['A', 'B', 'C']
딕셔너리 저장 및 불러오기
# 딕셔너리형
data = {}
data[1] = {'no': 1, 'subject': '안녕 피클', 'content': '피클은 매우 간단합니다.'}
# 파일 저장
with open('dictionary.pkl', 'wb') as f:
pickle.dump(data, f)
# 파일 읽기
with open("dictionary.pkl", 'rb') as f:
data = pickle.load(f)
type(data)
>>> dict
data
>>> {1: {'no': 1, 'subject': '안녕 피클', 'content': '피클은 매우 간단합니다.'}}
'프로그래밍 언어 > Python' 카테고리의 다른 글
[numpy] 자동 형 변환, 기본 연산 (0) | 2024.08.04 |
---|---|
[numpy] arange, linspace (0) | 2024.08.04 |
파일 압축 - zlib, gzip, zipfile, tarfile (0) | 2024.08.04 |
파일 찾기, 복사, 이동 - glob, fnmatch, shutil (0) | 2024.08.04 |
클로저와 데코레이터 (0) | 2024.08.04 |