pickle이란?
일반 파일 입출력은 텍스트를 저장하는 형태이지만,
리스트나 클래스 같은 텍스트가 아닌 자료형은 데이터를 저장하거나
불러오기 불가능.
pickle은 프로그램 내 데이터를 파일 형태로 저장하는 것.
import pickle # pickle모듈 임포트
list_file = open("my_list.pickle","wb") # 파일생성
my_list = {"name":"amy","age":20,"hobby":{"hiking","coding"}}
print(my_list) # {"name":"amy","age":20,"hobby":{"hiking","coding"}}
#my_list에 있는 정보를 file에 저장
pickle.dump(my_list, list_file)
list_file.close()
list_file = open("my_list.pickle","rb") #파일가져오기
# file에 있는 정보를 my_list에 불러오기
my_list = pickle.load(list_file)
print(my_list)
list_file.close() # {"name":"amy","age":20,"hobby":{"hiking","coding"}}
위에 같은 상황에선 매번 file을 close해줘야해서 번거롭고 불편한감이 있다.
with을 사용하여 2줄코딩으로 간결하게 만들어보자.
# my_list 파일을 열어서, w_file라는 변수로 저장하고
# r_file 내용을 pickle.dump을 통해서 파일 입력 및 저장
with open("my_list.pickle","wb") as w_file:
print(pickle.dump(w_file))
# my_list 파일을 열어서, r_file라는 변수로 저장하고
# r_file 내용을 pickle.load를 통해서 불러와서 출력
with open("my_list.pickle","rb") as r_file:
print(pickle.load(r_file))