2011-11-24 2 views
1

저는 파이썬에서 복잡한 트리 구조를 프로그래밍하고 있습니다. 트리 객체를 만들고 코드를 실행할 때마다 데이터로 채우는 일에 질려합니다."내구성있는"객체 만들기

그래서, 객체를 파이썬에서 "내구성"있게 만드는 방법이 있습니까? "내구성"이란 의미는 모든 객체를 파일의 바이트로 저장하는 방법이 있기 때문에 코드를 다시 실행하면 모든 객체를 만들고 바이트 파일의 데이터로 채우고 상태를 복원 할 수 있습니다 나는 코드를 마지막으로 실행했을 때 떠났다.

나는이 같은 질문을 가진 게시물이있을 것이라고 생각하지만, 영어로 "내구성있는"더 나은 용어를 생각할 수 없다.

+4

"지속"은 찾고있는 단어입니다. 'shelve'와'pickle' 모듈을 확인하십시오. – Gabe

+0

@ 가브리가 찾고 있던 마법의 단어였습니다! – juliomalegria

답변

5

pickle 모듈을 사용하여 메모리 내 표현을 디스크에 기록 할 수있는 일반적인 문구 인 데이터 (serialize)로 사용할 수 있습니다. 너는 the Python documentation에서 더 많은 것을 읽었다.

간단한 코드가이 파일에 개체를 저장하기 위해 다음과 같습니다

pickle.dump(myobject, open('myfile', 'w')) 

그리고 다시 그것을 읽을 수 :

myobject = pickle.load(open('myfile', 'r')) 
+0

이 파일의 일반적인 파일 이름 접미사는 무엇입니까? '.dat'? – juliomalegria

+1

실제로 여기에는저기서'.pck '가 사용되었지만 실제로 표준이 있다고는 생각하지 않습니다. – Codemonk

+2

나는 보통'.pkl'과 함께 이것들을 볼 수있다. –

1

간단한 지속성을 위해, 나는 shelve 모듈을 권장합니다.