8.5 데이터를 파일로 저장하기:pickle 모듈
pickle모듈 : 프로그램에서 사용하는 데이터를 파일 형태로 저장해서 불러와서
사용할 수 있는 모듈
형식 dump(저장할 데이터, 저장할 파일명)
가져올 때는
import pickle # pickle 모듈 가져다 쓰기
pickle저장모드는 바이너리 형태로 저장됨
- 텍스트 파일 : 사람이 읽을 수 있는 글자(한글, 영어, 숫자등로 이루어진 파일로, 보통 txt형식으로 저장, 글꼴 크기, 색상등 서식정보 없이 단순한 글자만 저장
- 바이너리파일 : 컴퓨터가 인식할 수 있는 이진수(0과1)로 이루어진 파일로, jpg, png, mp3,exe등의 파일이 해당됨
- 파일형태에 따른 파일 열기 모드
모드 | 의미 | 설명 |
t | 텍스트(text) | 파일을 텍스트 모드로 열기, 읽기모드 일때는 rt, 쓰기모드일때는 wt와 같이 사용함. 텍스트 모드는 기본값이므로 t는 생략 가능함 |
b | 바이너리(binary) | 파일을 바이너리 모드로 열기, 읽기 모드일 때는 rb, 쓰기모드일때는 wb와 같이 사용함 |
따라서 profile.pickle 파일을 열기 위해 open() 함수를 사용할 때, w모드 뒤에 b를 붙여서 wb라고 해야 올바르게 저장됨
작성한 데이터를 dump()함수를 사용해 파일로 저장, 마지막엔 close()함수루로 파일 닫기
<실습>
import pickle
profile_file = open("profile.pickle","wb") #바이너리 형태로 저장
profile = {"이름":"스누피","나이":30,"취미":["축구","골프","코딩"]}
print(profile)
pickle.dump(profile,profile_file) #profile 데이터를 파일로 저장
profile_file.close() #파일 닫기
실행결과
# 폴더를 보면 profile.pickle 파일이 생긴것을 볼수 있음.(파일이름 줄때 py이름과 동일하게 주지 않도록 함)
- 만든 파일 다시 불러올때는 load()함수를 사용하고 전달값으로 파일명을 넣기
- 형식 load(불러올 파일명)
<실습>
profile_file = open("profile.pickle","rb") #읽어 올때 는 바이너리 형태로 열기
profile = pickle.load(profile_file) # 파일에 있는 정보를 불러와서 profile에 저장
print(profile)
profiel_file.close()
실행결과
#1분퀴즈
pickle모듈로 데이터를 파일에 저장할 때 사용하는 함수는?
1. dump() 2. load() 3. push() 4. save() 정답 : 1