728x90
728x90
객체를 파일로 저장하는 과정: 피클링
파일으로부터 객체를 불러오는 과정: 언피클링
이라고 한다. 위의 과정들은 파이썬의 pickle 모듈을 사용하여 진행할 수 있다.
1) 객체 하나를 파일로 저장하고 로드하기
객체를 file로 저장하는 피클링은 다음과 같이 하면 된다. 이때 file의 확장자 명은 .p, .pickle 등 다양하게 사용할 수 있다.
이때 주의해야하는 점은 file을 'wb' 모드로 오픈해야한다는 것이다. b는 binary라는 뜻으로 컴퓨터가 처리하는 파일 형식으로 오픈한다는 의미이다.
import pickle
a = Motion()
with open('file 경로', 'wb') as f:
pickle.dump(a, f)
저장된 파일로부터 객체를 로드하는 언피클링은 다음과 같이 하면 된다. 이때 file은 'rb'모드로 오픈해야한다.
import pickle
with open("file 경로", 'rb') as f:
a = pickle.load(f)
2) 여러 객체를 한 파일로 저장하기
여러 객체를 한 file에 저장하는 것도 가능하다.
import pickle
a = Motion()
b = Motion()
c = Motion()
with open('file 경로', 'wb') as f:
pickle.dump(a, f)
pickle.dump(b, f)
pickle.dump(c, f)
여러 객체를 한 file에 저장했을 때 언피클링은 다음과 같이 load를 여러번 진행하면 된다. dump한 순서대로 load된다.
import pickle
with open("file 경로", 'rb') as f:
a = pickle.load(f)
b = pickle.load(f)
c = pickle.load(f)
몇 개의 object를 dump 했는지 모를 때 while문을 사용해 load를 진행할 수 있다. load가 fail 할때까지 load된 object를 list에 저장하는 예시이다.
import pickle
motion_list = []
with open("파일 경로", 'rb') as f:
while True:
try:
motion = pickle.load(f)
motion_list.append(motion)
except EOFError:
break
728x90
728x90
'연구 > Python' 카테고리의 다른 글
파이썬 메모리에서 객체 지우기 (0) | 2023.04.04 |
---|