-
[코딩도장] day20. 파일 사용하기(2/2) - pickle, unpickleIT/파이썬 2020. 9. 11. 22:36
■ 들어가기
- 파이썬 코딩 도장 (남재윤/길벗). 을 공부하며 정리하는 블로그
▶ Unit27. 파일 사용하기
- 27.1 파일에 문자열 쓰기, 읽기
- 27.2 문자열 여러 줄을 파일에 쓰기, 읽기
- 27.3 파이썬 객체를 파일에 저장하기, 가져오기
>> 27.3 파이썬 객체를 파일에 저장하기, 가져오기 <<
- 파이썬은 객체를 파일에 저장하는 pickle 모듈을 제공함
- 파이썬 객체를 파일에 저장하는 과정 : 피클링(pickling)
파일에서 객체를 읽어오는 과정 : 언피클링(unpickling)
1. 파이썬 객체를 파일에 저장하기 : 피클링(pickling)
- 피클링은 pickle 모듈의 dump메서드를 사용
- 파일모드는 반드시 바이너리 쓰기모드(wb)로 지정!
소스 (pickle_dump.py) 결과 import pickle
name = 'james'
age = 17
address = '서울시 서초구 반포동'
scores = {'korean': 90, 'english': 95, 'mathematics': 85, 'science': 82}
with open('james.p', 'wb') as file : # james.p 파일을 바이너리 쓰기모드(wb)로 열기
pickle.dump(name, file)
pickle.dump(age, file)
pickle.dump(address, file)
pickle.dump(scores, file)james.p 파일 생성 - pickle.dump로 객체(값)를 저장할 때는 반드시 파일모드를 'wb'로 지정하여야 함!
- b는 바이너리(binary)를 의미하며, 컴퓨터가 처리하는 파일 형식으로 편집기로 열어도 사람이 알아볼 수 없음
사람이 알아보기 쉽도록 만든 파일 형식은 텍스트(text)파일임
2. 파일에서 파이썬 객체 읽기 : 언피클링(unpickling)
- 언피클링은 pickle 모듈의 load를 사용함
- 파일모드는 반드시 바이너리 읽기모드(rb)로 지정!
소스 (pickle_load.py) 결과 import pickle
with open('james.p', 'rb') as file: # james.p 파일을 바이너리 읽기모드(rb)로 열기
name = pickle.load(file)
age = pickle.load(file)
address = pickle.load(file)
scores = pickle.load(file)
print(name)
print(age)
print(address)
print(scores)james
17
서울시 서초구 반포동
{'korean': 90, 'english': 95, 'mathematics': 85, 'science': 82}
>>>[참고] 추가적인 파일 모드
- 파일 모드 : 읽기 'r', 쓰기 'w', 추가 'a', 배타적 생성 'x'
└ 추가 'a' : 이미 있는 파일에서 끝에 새로운 내용을 추가 시 사용
└ 배타적 생성 'x' : 파일이 이미 있으면 에러 발생, 없으면 파일 생성
- 파일 형식 : 텍스트 모드 't', 바이너리 모드 'b'
└ 일반적으로 텍스트 모드는 생략가능하며 'rt' == 'r', 'wt' == 'w' 임
'IT > 파이썬' 카테고리의 다른 글
[코딩도장] day20. 회문 판별과 N-gram 만들기 (0) 2020.09.12 [코딩도장] day20. 27.5 연습문제 (0) 2020.09.11 [코딩도장] day19. 파일 사용하기(1/2) - open(), write(), close(), read(), readline(), readlines() (0) 2020.09.10 [코딩도장] day18. 세트 사용하기(2/2) - add(), remove(), discard(), pop(), clear(), copy() (0) 2020.09.06 [코딩도장] day17. 세트 사용하기(1/2) - set(), issubset(), issuperset(), isdisjoint() (0) 2020.09.01