파이썬에서 데이터를로드 할 때 두 가지 문제가 있습니다. 두 가지 scipts가 제대로 작동하지만 너무 많은 시간이 필요하며 때로는 "Killed"가 첫 번째 결과와 함께 나타납니다. 파이썬에서의 빠른 파일로드
- 나는 큰 압축 된 텍스트 파일을 가지고 있고이 같은 것을 할 : 나는 이전의 스크립트에서 만든 사전에 몇 가지 작업을 할 필요가
import gzip import cPickle as pickle f = gzip.open('filename.gz','r') tab={} for line in f: #fill tab with open("data_dict.pkl","wb") as g: pickle.dump(tab,g) f.close()
을
import cPickle as pickle with open("data_dict.pkl", "rb") as f: tab = pickle.load(f) f.close() #operations on tab (the dictionary)
다른 해결책이 있습니까? 아마 YAML 또는 JSON이 관련된 것이 아닐 수도 있습니다 ...
Pickle은 느리고 매우 불안정 할 수 있습니다. 하지만 가장 빠른 pickle 프로토콜 (docs 참조)을 사용하기위한 힌트를 적어도 추가해야합니다. pickle.HIGHEST_PROTOCOL은 덤프의 세 번째 매개 변수입니다. 당신이 실제로하는 일에 따라, 속도를 높이는 다른 많은 옵션들이 있습니다. (예 : sqlite db 사용). – schlenk
스트리밍이 아닌 모든 것을 메모리에로드한다는 문제가 있습니까? 그렇다면 스트리밍 피클 (https://code.google.com/p/streaming-pickle/)을 확인해보십시오. – user2141650