>  기사  >  백엔드 개발  >  Python은 객체를 파일에 저장합니다.

Python은 객체를 파일에 저장합니다.

巴扎黑
巴扎黑원래의
2016-11-26 10:19:532161검색

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
변경할 필요가 없습니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.