gpt4 book ai didi

python - 使用python多线程读写文件

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:09 25 4
gpt4 key购买 nike

所以,我有一个 9000 行的 csv 文件。我已经阅读了它并将它存储在一个带有字符串键 m 的字典列表中。我想要做的是循环每个项目 list[m] 并将其处理成一个函数 processItem(item)。此 processItem 将返回一个类似于 csv 格式的字符串。我的目标是为列表中的每个项目编写 processItem 函数的结果。是否知道如何执行这种多线程方式?

我想我应该把列表分成N个子列表,然后以多线程的方式处理这些子列表。每个线程都会返回子列表处理后的字符串,然后合并。最后写入文件。如何实现?

最佳答案

这是使用 multiprocessing 的完美示例模块和 Pool()函数(注意 threading 模块不能用于提高速度)。

您必须对列表的每个元素应用一个函数,这样可以很容易地并行化。

with Pool() as p:
processed = p.map(processItem, lst)

如果您使用的是 Python 2,Pool() 不能用作上下文管理器,但您可以像这样使用它:

p = Pool()
processed = p.map(processItem, lst)

您的函数 processItem() 将针对您的 lst 中的每个元素调用,结果将创建一个新列表 processed(顺序被保留)。

Pool() 函数会生成与您的 CPU 拥有的内核一样多的进程工作线程,并在前一个任务完成后立即执行新任务,直到所有元素都已处理。

关于python - 使用python多线程读写文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37248260/

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