본문 바로가기

Python/Basic

[파이썬] Pickle 활용방법

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)에서 객체를 읽기