더북(TheBook)

작성한 데이터를 dump() 함수를 사용해 파일로 저장합니다. 마지막에 close() 함수로 파일 닫는 것을 잊지 마세요.

import pickle # pickle 모듈 가져다 쓰기

profile_file = open("profile.pickle", "wb") # 바이너리 형태로 저장
profile = {"이름": "스누피", "나이": 30, "취미": ["축구", "골프", "코딩"]}
print(profile)

 

pickle.dump(profile, profile_file) # profile 데이터를 파일에 저장
profile_file.close() # 파일 닫기

실행하면 profile에 들어 있는 데이터를 터미널에 출력합니다. 그리고 탐색기를 보면 소스 코드 파일과 동일한 위치(PythonWorkspace 폴더)에 profile.pickle이라는 파일이 생긴 것을 볼 수 있습니다. 이 파일은 바이너리 형태라서 VSCode나 다른 에디터에서 열어도 내용을 확인할 수 없습니다. 아름다운 피아노 선율을 글자로 볼 수는 없듯이 말이죠.

Note pickle 모듈 사용 시 오류가 발생한다면?

pickle 모듈을 사용하다 보면 다음과 같은 오류가 발생하는 경우가 있습니다.

AttributeError: partially initialized module 'pickle' has no attribute 'dump or load' (most likely due to a circular import)

이는 소스 코드를 작성 중인 파일명이 pickle.py여서 그렇습니다. 이때는 my_pickle.py 등 다른 이름으로 파일명을 변경해야 합니다. import할 때 같은 경로(폴더)에 있는 파일을 먼저 인식하므로 사용하려는 모듈과 같은 이름으로 파일을 생성하면 안 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.