gpt4 book ai didi

python - 多个进程写入同一个CSV文件,如何避免冲突?

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:26 25 4
gpt4 key购买 nike

9 个进程在我们的系统中同时写入相同的 CSV 输出。而且输出速度快。每天大约有 1000 万个新行。我们使用 Python2.7 的 csv 模块来编写 CSV 文件。

最近我注意到 CSV 文件中有一些混合行(参见下面的示例)。

例如

"name", "sex", "country", "email"
...# skip some lines
"qi", "Male", "China", "redice
...# skip some lines
"Jamp", "Male", "China", "jamp@site-digger.com"
...# skip some lines
@163.com"

正确的输出应该是:

"name", "sex", "country", "email"
...# skip some lines
"qi", "Male", "China", "redice@163.com"
...# skip some lines
"Jamp", "Male", "China", "jamp@site-digger.com"
...

如何避免这种冲突?

最佳答案

我没有直接的方法。

一个常见的解决方法是在“生产者”和“输出者”之间分配责任。

再获得一个进程负责从多进程队列输出 CSV,并将所有“生产者”进程推送到该队列。

我建议查看 python's multiprocessing module尤其是关于 queues 的部分.如果您在尝试时遇到困难,请在此处提出新问题,因为这可能会变得棘手。

另一种方法是使用“巨型锁”,这将要求每个进程等待资源的可用性(例如使用系统互斥锁)。这将使代码更简单,但可扩展性较差。

关于python - 多个进程写入同一个CSV文件,如何避免冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19830822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com