[파이썬] pickle 모듈

InAnarchy·2023년 6월 2일
0

Python

목록 보기
14/14
post-thumbnail

pickle 모듈

  • 객체를 파일에 저장하는 모듈
  • 형식을 유지하면서 데이터를 저장하는 방법


파이썬 객체를 파일에 저장하는 과정을 피클링(pickling)
파일에서 객체를 읽어오는 과정을 언피클링(unpickling)이라고 한다.

피클링

  • dump 메서드를 사용한다.
  • 파일 모드를 'wb'로 지정해야한다.
import pickle
 
name = 'test'
content = 'hmm...'
date = {'year': 2023, 'month': 6, 'day':2}

with open('test.p', 'wb') as file:    # james.p 파일을 바이너리 쓰기 모드(wb)로 열기
    pickle.dump(name, file)
    pickle.dump(content, file)
    pickle.dump(date, file)

이 때 .py 파일이 있는 폴더에 p 파일이 생성된다.
바이너리 데이터이므로 직접 확인할 수 없고, 아래와 같은 언피클링 과정을 통해 읽을 수 있다.

언피클링

  • load 메서드를 사용한다.
  • 파일 모드를 바이너리 읽기 모드 'rb'로 지정해야 한다.
with open('test.p', 'rb') as file:    # james.p 파일을 바이너리 쓰기 모드(wb)로 열기
    name = pickle.load(file)
    content = pickle.load(file)
    date = pickle.load(file)
    print(name, content, date)
test hmm... {'year': 2023, 'month': 6, 'day': 2}

파일모드

  • 읽기, 쓰기(r, w)외에도 추가 a, 배타적 생성 x도 있다.
  • 추가는 이미 있는 파일에서 끝에 새로운 내용을 추가할 때 사용한다.
  • 배타적 생성 모드는 파일이 이미 있으면 에러(FileExistsError)를 발생시키고 없으면 파일을 만든다.
  • 파일 형식은 텍스트 모드 t, 바이너리 모드 b가 있다.
  • +는 파일을 읽기/쓰기 모드로 연다는 뜻으로 'r+t', 'w+t', 'r+', 'w+', 'r+b', 'w+b' 등으로 조합할 수 있으며 읽기/쓰기 모드인 것은 같지만 파일 처리 방법이 조금씩 다르다.

출처
코딩도장

profile
github blog 쓰다가 관리하기 귀찮아서 돌아왔다

0개의 댓글