우선 먼저 미리 감사드립니다!파이썬 피클 메모리 문제
그래서 저는 특허 인용 정보가 포함 된 큰 사전 개체를 Pickle.dump하려고합니다.
'MemoryError'오류 메시지가 표시됩니다.
파일이 너무 커서 Pickle이 메모리로 덤프 할 수 없기 때문입니다. 누구든지이 문제를 해결할 수있는 방법에 대한 제안이나 큰 파일 크기 메모리 저장을위한 좋은 대안을 가지고 있습니까?
것은 단순히 코드를 사용하고 덤프하려면
def pickleDumpCd():
with open("./PickleDumpCd","wb")as cdFP:
pickle.dump(createSameTSVDateDict("uspatentcitation.tsv"),cdFP)
덤프되는 것은 TSV (아래 코드)에서 만든 사전입니다 :
def createSameTSVDateDict(path):
citationDateDict = defaultdict()
with open(path) as citTSV:
print("Creating Same TSV Date Dict")
header = 0
for line in csv.reader(citTSV, dialect="excel-tab"):
if header > 0 and line[1] not in citationDateDict:
citationDateDict[line[1]] = [(line[3],line[2])]
elif header > 0 and line[2] in citationDateDict:
citationDateDict[line[1]].append((line[3],line[2]))
header += 1
return citationDateDict
이 문제는 저를 괴롭 히고있다 동안, 그래서 어떤 생각/제안 많이 감사.
덕분에, 루이
일반적으로 MemoryError는 "file too big"에 대해 발생하지 않지만 Python이 충분한 메모리 (RAM)를 할당 할 수 없기 때문에 발생합니다. 파이썬 32 비트 또는 64 비트를 사용합니까? 32 일 경우 64 비트 버전으로 전환하십시오. –
@ MaximilianMatthé Python 3.5.2 | Anaconda 4.2.0 (64 비트) win32 -이 문제는 의심 스럽지만 신속한 응답에 감사드립니다! – lel23