0
首先感谢您提前!Python泡菜记忆问题
因此,我正在尝试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,但是因为Python无法分配足够的内存(RAM)。你使用Python 32位还是64位?如果是32,请尝试切换到64位版本。 –
@MaximilianMatthéPython 3.5.2 | Anaconda 4.2.0(64位)win32 - 我怀疑这是问题所在,但感谢您的迅速响应! – lel23