退出代码137(128 + 9)表示您的程序由于接收到信号9而退出了
SIGKILL。这也解释了该
killed消息。问题是,您为什么收到该信号?
最可能的原因可能是您的进程超出了允许使用的系统资源量的某些限制。根据您的操作系统和配置,这可能意味着您有太多打开的文件,使用了过多的文件系统空间或其他东西。最有可能的是您的程序使用了过多的内存。当内存分配开始失败时,系统没有发出危险,而是向使用过多内存的进程发送了终止信号。
如前所述,打印后您可能会达到内存限制的一个原因
finishedcounting是,您
counter.items()在最终循环中对的调用会分配一个列表,其中包含字典中的所有键和值。如果您的词典中有很多数据,那么这可能是一个很大的列表。一种可能的解决方案是使用
counter.iteritems()哪个是发电机。无需返回列表中的所有项目,而是让您以更少的内存使用量对其进行迭代。
因此,建议您尝试此操作,作为您的最终循环:
for key, value in counter.iteritems(): writer.writerow([key, value])
请注意,在Python 3中,
items返回的“字典视图”对象的开销与Python
2的版本不同。它取代了
iteritems,因此,如果以后升级Python版本,最终将把循环改回原来的样子。



