1. Pickle 패키지
(1) 메모리의 객체를 텍스트 스트림으로 변환:
import pickle # define class class Bird(object): have_feather = True way_of_reproduction = 'egg' summer = Bird() # construct an object picklestring = pickle.dumps(summer) # serialize object
pickle.dumps() 메서드를 사용하여 객체를 여름으로 변환합니다. 문자열 picklestring(즉, 텍스트 스트림)입니다. 그런 다음 일반 텍스트 저장 방법을 사용하여 문자열을 파일에 저장할 수 있습니다(텍스트 파일 입력 및 출력).
물론, pickle.dump() 메소드를 사용하여 위의 두 부분을 하나로 결합할 수도 있습니다.
import pickle # define class class Bird(object): have_feather = True way_of_reproduction = 'egg' summer = Bird() # construct an object fn = 'a.pkl' with open(fn, 'w') as f: # open file with write-mode picklestring = pickle.dump(summer, f) # serialize and save object
객체 summer는 a 파일에 저장됩니다. .pkl
(2), 객체 재구성
먼저 텍스트에서 텍스트를 읽어 문자열로 저장해야 합니다(텍스트 파일의 입력 및 출력). 그런 다음 pickle.loads(str) 메서드를 사용하여 문자열을 객체로 변환합니다. 기억하세요, 우리 프로그램에는 현재 객체에 대한 클래스 정의가 이미 있어야 합니다.
또한, pickle.load() 메소드를 사용하여 위 단계를 병합할 수도 있습니다:
import pickle # define the class before unpickle class Bird(object): have_feather = True way_of_reproduction = 'egg' fn = 'a.pkl' with open(fn, 'r') as f: summer = pickle.load(f) # read file and build object
cPickle 패키지
cPickle 패키지의 기능 및 사용법은 pickle 패키지와 거의 동일합니다(차이점이 거의 사용되지 않음). cPickle은 C 언어를 기반으로 작성되었으며 pickle 패키지보다 1,000배 빠릅니다. 위의 예에서 cPickle 패키지를 사용하려면 import 문을 다음과 같이 변경할 수 있습니다.
import cPickle as pickle
변경할 필요가 없습니다.