您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

当使用Python处理巨大的CSV突然停止时,“杀死”是什么意思?

当使用Python处理巨大的CSV突然停止时,“杀死”是什么意思?

退出代码137(128 + 9)表示您的程序由于接收到信号9而退出SIGKILL。这也解释了该killed消息。问题是,您为什么收到该信号?

最可能的原因可能是您的进程超出了允许使用的系统资源量的某些限制。根据您的操作系统和配置,这可能意味着您有太多打开的文件,使用了过多的文件系统空间或其他东西。最有可能的是您的程序使用了过多的内存。当内存分配开始失败时,系统没有发出危险,而是向使用过多内存的进程发送了终止信号。

如前所述,打印后您可能会达到内存限制的一个原因finished counting是,您counter.items()在最终循环中对的调用会分配一个列表,其中包含字典中的所有键和值。如果您的词典中有很多数据,那么这可能是一个很大的列表。一种可能的解决方案是使用counter.iteritems()哪个是发电机。无需返回列表中的所有项目,而是让您以更少的内存使用量对其进行迭代。

因此,建议您尝试此操作,作为您的最终循环:

for key, value in counter.iteritems():
    writer.writerow([key, value])

请注意,在Python 3中,items返回的“字典视图”对象的开销与Python 2的版本不同。它取代了iteritems,因此,如果以后升级Python版本,最终将把循环改回原来的样子。

python 2022/1/1 18:33:53 有556人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶