파일 읽기, 저장 - Pickle 모듈

2024. 8. 4. 15:18· 프로그래밍 언어/Python
목차
  1. Pickle 기본 개념
  2. 주요 기능
728x90

Python

 

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']

 

생성된 list.pkl 파일

 

 

딕셔너리 저장 및 불러오기


      
# 딕셔너리형
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': '피클은 매우 간단합니다.'}}

생성된 dictionary.pkl 파일

 

 

'프로그래밍 언어 > Python' 카테고리의 다른 글

[numpy] 자동 형 변환, 기본 연산  (0) 2024.08.04
[numpy] arange, linspace  (1) 2024.08.04
파일 압축 - zlib, gzip, zipfile, tarfile  (0) 2024.08.04
파일 찾기, 복사, 이동 - glob, fnmatch, shutil  (1) 2024.08.04
클로저와 데코레이터  (0) 2024.08.04
  1. Pickle 기본 개념
  2. 주요 기능
'프로그래밍 언어/Python' 카테고리의 다른 글
  • [numpy] arange, linspace
  • 파일 압축 - zlib, gzip, zipfile, tarfile
  • 파일 찾기, 복사, 이동 - glob, fnmatch, shutil
  • 클로저와 데코레이터
평양냉면7
평양냉면7
하다보니 재미있는 개발에 빠져있는 평양냉면7 문의사항: ysoil8811@gmail.com
평양냉면7
하다보니 재미있는 개발
평양냉면7
전체
오늘
어제
  • 분류 전체보기 (218)
    • Upstage AI Lab 4기 (16)
      • 컴퓨터 공학 (11)
      • 수학 (0)
    • EDA (5)
    • RAG (8)
    • ML (9)
    • MLOps (10)
    • Deep Learning (8)
    • 프로그래밍 언어 (30)
      • Python (17)
      • JAVA (10)
      • Kotlin(코틀린) (3)
    • Spring (66)
      • Spring 기초 지식 (3)
      • Spring Boot (37)
      • Spring Data JPA (10)
      • Spring 테스트코드 (9)
      • Spring 트러블 슈팅 (7)
    • AWS (22)
    • 테라폼(Terraform) (7)
    • Docker (7)
    • Tools (6)
      • nGrinder (4)
      • Kafka (카프카) (3)
    • ETC (5)

나의 링크

냉면의 링크드인 👤 냉면의 깃허브 🪶 냉면의 노오션 🌊

인기 글

최근 글

hELLO · Designed By 정상우.v4.2.2
평양냉면7
파일 읽기, 저장 - Pickle 모듈
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.