2013-05-06 3 views
1

피클 링 된 파일의 개체 수를 얻는 짧은 방법이 있습니다. 파일을 여는 함수를 작성하는 것보다 짧고 pickle.load 메서드를 계속 호출하고 num_of_objs을 1로 업데이트하여 EOFError을 캐치하고 값을 반환 할 때까지?피클에있는 물체 수를 얻는 방법?

+0

[내'skip_pickle' 함수] (http://stackoverflow.com/a/8910284/222914)를 사용해 볼 수 있습니다. 그래도 전체 파일을 반복해야합니다. –

답변

4

아니요, 없습니다. 피클 형식은 정보를 저장하지 않습니다. 메타 데이터의 유형이 필요하면 쓸 때

, 파일 자신에 추가해야합니다

pickle.dump(len(objects), fileobj) 
for ob in objects: 
    pickle.dump(ob, fileobj) 

이제 첫 번째 레코드 따라 얼마나 많은을 알려줍니다.