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

2023-12-04

我有一个 Python 脚本,它导入一个大型 CSV 文件,然后计算文件中每个单词的出现次数,然后将计数导出到另一个 CSV 文件。

但正在发生的事情是,一旦计数部分完成并开始导出,它就会说Killed在终端中。

我不认为这是一个内存问题(如果是的话,我认为我会遇到内存错误,而不是Killed).

会不会是这个过程花费的时间太长了?如果是这样,有没有办法延长超时时间以避免这种情况?

这是代码:

csv.field_size_limit(sys.maxsize)
    counter={}
    with open("/home/alex/Documents/version2/cooccur_list.csv",'rb') as file_name:
        reader=csv.reader(file_name)
        for row in reader:
            if len(row)>1:
                pair=row[0]+' '+row[1]
                if pair in counter:
                    counter[pair]+=1
                else:
                    counter[pair]=1
    print 'finished counting'
    writer = csv.writer(open('/home/alex/Documents/version2/dict.csv', 'wb'))
    for key, value in counter.items():
        writer.writerow([key, value])

And the Killed发生在之后finished counting已打印,完整消息为:

killed (program exited with code: 137)

退出代码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 版本,您最终会将循环更改回原来的方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当使用 Python 处理一个巨大的 CSV 并突然停止时,“killed”是什么意思? 的相关文章

随机推荐

  • 垂直连接制表符分隔的 txt 文件

    input1 input2 output 是制表符分隔的 txt 文件 如果输入1是 a b c 1 2 3 输入2是 e r t 那么我希望输出是 a b c 1 2 3 e r t 我尝试通过学习使用 python 连接文件Python
  • MongoRepository JSON 日期查询 (Spring)

    我正在尝试使用自己的查询来查询 mongo 存储库 Repository public interface LogEntryRepository extends MongoRepository
  • 了解 libx264 输出 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我在 ffmpeg 中使用 libx264 进行编码 最后我得到了以下输出 谁能指导我理解和解释这一点 有任何参考 文档吗 01 01 06 34 43 650 I stderr 6
  • 迭代包含嵌套数组的 pandas 数据框列

    我希望你能帮我解决这个问题 我在下面有这些数据 列名称随便 data file0090 84 55 189 248 100 18 68 115 88 file6565 86 58 189 24 10 118 68 11 8 我需要将第 0
  • Celery 单元测试重试

    我目前正在为我的 celery 任务编写单元测试 并想测试我的任务是否正在重试 注意 ALWAYS EAGER 在测试设置中设置为 True app shared task bind True soft time limit 600 aut
  • Arduino 频率为 11.0592MHz。修改Timer0、delayMicroseconds()

    我在 Arduino 环境中使用 11 0592MHz 的 ATMega328P 我发现delayMicroseconds 函数快了大约27 原因是 wiring c 中的代码假设时钟速度现在为 8MHz 现在我尝试修复它 我发现了不同的帖
  • 如何安装本地 gem?

    如果我将 gem 文件下载到计算机中的某个文件夹中 我可以稍后使用它进行安装吗gem install 另外 您可以使用gem install local path to gem filename gem 这将跳过您离开时发生的通常的 gem
  • 从 VBA 调用 Python 脚本

    我在 Excel 中从 vba 调用 python 脚本时遇到问题 我阅读了解决相同问题的其他线程 但是当我运行代码时 Python 屏幕闪烁 然后消失 仅供参考 我下载了适用于 Windows 10 的 python 3 6 5 并将其添
  • 使用 JavaScript 中的 Dart 类

    我有一个 Dart 类 foo dart class Foo void talk print Hello 将 foo dart 编译为 JavaScript 后 我 希望能够像这样使用 Foo var foo new Foo from fo
  • java.lang.NoClassDefFoundError:org/apache/commons/lang/Validate

    为什么会发生以下情况以及如何解决 Exception in thread main java lang NoClassDefFoundError org apache commons lang Validate at org jsoup D
  • Pygame 如何修复“尾随像素”?

    在图像中 红色轨迹是当我在精灵周围添加边界矩形时 pygame 创建的轨迹 精灵也可以做到这一点 最简单的解决方案是在每次重绘后将表面清除为黑色 然而 尝试在整个主表面上这样做并不是一个好主意 我怎样才能解决这个问题 通常你会这样做 def
  • Java 中 for 循环转换为 while 循环

    我需要将这个 for 循环转换为 while 循环 这样我就可以避免使用中断 double array new double 100 Scanner scan new Scanner System in for int index 0 in
  • 单击 Facebook 通知后应用程序启动时,请求 ID 不可用

    Facebook 应用程序是使用 iOS 本机应用程序设置的 并使用另一个应用程序的捆绑 ID 和应用商店 ID 启用 在当前情况下 以下是可能的 1 向朋友发送应用程序请求 2 请求徽章出现在好友的Facebook中 3 单击请求将启动我
  • ftplib.error_perm: 553 无法创建文件。 (Python 2.4.4)

    我正在写入我要通过 FTP 访问的用户的主目录 因此权限应该不是问题 FTP 在 FileZilla 中运行 我检查了 vsftp conf 并做了local enable YES change On a Debian4使用 Python
  • 在 Angular2 中设置选定的属性

    我有选择组 我想为具有特定 id 的对象设置选定属性 我试图在功能上改变这种情况 但没有帮助 即使我只是简单地设置 attr selected true 这也没有帮助 div class form group div
  • 检查给定区域中是否存在包含 4 个顶点的点

    指的是http www weather gov directives sym pd01008006curr pdf 第 8 页 我们在地理坐标系 纬度和经度系统 中给出了一个具有四个顶点的区域 我想检查该区域内是否存在具有特定纬度和经度的点
  • Application Insights 如何跟踪 User_Id?

    我正在运行具有应用程序洞察力的 Azure Web 应用程序 我知道微软无法显示真实IP Client IP 所以我将真实IP地址添加到所有请求 Ip 我有一个访客 client id h9zbt 在过去 24 小时内使用 48 个不同的
  • 更新后“主页”类别页面无法使用

    版本 1 4 1 4 的 prestashop 网站正在与category php类别页面的文件 不幸的是 1 6 0 6 的更新删除了该文件 因为它已被视为已弃用 CMS 更新后 URL 结构发生变化 后果之一是 URL 结构发生变化 f
  • Rails-4 中不区分大小写的活动记录查询

    目前我正在 Rails 4 中的一个项目中工作 其中我在 example com username 上有一个用户页面 但如果我在正确的情况下使用用户名 它只会找到记录 如何在活动记录 Rails 中执行不区分大小写的搜索 看看我下面的代码
  • 当使用 Python 处理一个巨大的 CSV 并突然停止时,“killed”是什么意思?

    我有一个 Python 脚本 它导入一个大型 CSV 文件 然后计算文件中每个单词的出现次数 然后将计数导出到另一个 CSV 文件 但正在发生的事情是 一旦计数部分完成并开始导出 它就会说Killed在终端中 我不认为这是一个内存问题 如果