pickle이란?
pickle은 파이썬에서 사용하는 딕셔너리, 리스트, 클래스 등의 자료형을 변환 없이 그대로 파일로 저장하고 이를 불러올 때 사용하는 모듈입니다.
▶ 즉, 단순한 텍스트를 저장하는 것이 아니라 규칙이 있는 데이터를 파일로 저장할 때는 데이터 형식을 유지할 수 있어야 하는데, 파이썬에서 형식을 유지하면서 데이터를 저장하는 가장 쉬운 방법은 pickle 모듈을 사용하는 것입니다.
# '피클링(일반 객체 및 복합 객체 file i/o) - object type으로 저장' 출력
print('피클링(일반 객체 및 복합 객체 file i/o) - object type으로 저장')
# pickle 모듈을 임포트합니다.
import pickle
try:
dictData = {'tom': '111-1111', '길동': '222-2222'} # 일반 딕셔너리 객체
listData = ['파이썬', '자바'] # 일반 리스트 객체
tupleData = (dictData, listData) # 딕셔너리와 리스트를 합친 복합 튜플 객체
# 'hello.obj' 파일을 이진 쓰기 모드로 엽니다.
with open('hello.obj', mode='wb') as f1:
# pickle.dump를 사용하여 튜플 데이터를 파일에 저장합니다.
pickle.dump(tupleData, f1)
# pickle.dump를 사용하여 리스트 데이터를 파일에 저장합니다.
pickle.dump(listData, f1)
# 저장이 완료되었다는 메시지 출력
print('피클을 이용한 객체 저장')
# 'hello.obj' 파일을 이진 읽기 모드로 엽니다.
with open('hello.obj', mode='rb') as f2:
# pickle.load를 사용하여 파일에서 튜플 데이터를 읽어옵니다.
a, b = pickle.load(f2)
# 읽어온 데이터를 출력합니다.
print(a)
print(b)
# pickle.load를 사용하여 파일에서 리스트 데이터를 읽어옵니다.
c = pickle.load(f2)
# 읽어온 데이터를 출력합니다.
print(c)
except Exception as e:
# 예외가 발생하면 오류 메시지를 출력합니다.
print('파일 처리 오류2 :', e)
- pickle.dump(obj, file) : 객체(obj)를 파일(file)에 저장하기
- pickle.load(file) : 파일(file)에서 객체를 읽기