【发布时间】:2020-06-25 21:38:46
【问题描述】:
我正在处理几个大的 txt 文件,每个文件大约有 8000000 行。这些行的一个简短示例是:
usedfor zipper fasten_coat
usedfor zipper fasten_jacket
usedfor zipper fasten_pant
usedfor your_foot walk
atlocation camera cupboard
atlocation camera drawer
atlocation camera house
relatedto more plenty
将它们存储在字典中的代码是:
dicCSK = collections.defaultdict(list)
for line in finCSK:
line=line.strip('\n')
try:
r, c1, c2 = line.split(" ")
except ValueError:
print line
dicCSK[c1].append(r+" "+c2)
它在第一个 txt 文件中运行良好,但是当它运行到第二个 txt 文件时,我收到错误 MemoryError。
我正在使用带有 python 2.7 32bit、intel i5 cpu、8Gb 内存的 window 7 64bit。我该如何解决这个问题?
进一步解释:
我有四个大文件,每个文件包含许多实体的不同信息。例如,我想查找cat、其父节点animal 及其子节点persian cat 等的所有信息。所以我的程序首先读取字典中的所有 txt 文件,然后我扫描所有字典以查找 cat 及其父亲和孩子的信息。
【问题讨论】:
-
这是你的真实代码吗?我想不是。例如什么是 finCSK?
-
为什么需要字典中的这些数据?将其放入数据库或类似的存储中,以便您查询它。
-
@e4c5,我在我的问题中忽略了输入过程,我读取文件,
fin打开文件 -
@DisplayName,我在字典中阅读后需要做更多的事情。所以我的代码中需要它们。
-
我仍然没有在您的描述中看到任何需要在内存中完成此操作的内容。