使用python的多线程读写文件

使用python的多线程读写文件,python,multithreading,Python,Multithreading,所以,我有一个9000行的csv文件。我已经读过了,并用字符串键m将它存储在字典列表中。我想做的是循环每个项目list[m],并将其处理为一个函数processItem(item)。此processItem将返回类似csv格式的字符串。我的目标是为列表中的每个项目编写processItem函数的结果。有没有办法用这种多线程的方式 我认为我应该将列表划分为N个子列表,然后以多线程的方式处理这些子列表。每个线程将返回从子列表处理的字符串,然后合并它。最后将其写入文件。如何实现这一点?这是一个使用模块

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


我认为我应该将列表划分为N个子列表,然后以多线程的方式处理这些子列表。每个线程将返回从子列表处理的字符串,然后合并它。最后将其写入文件。如何实现这一点?

这是一个使用模块和功能的完美示例(请注意,
线程化
模块不能用于提高速度)

您必须在列表的每个元素上应用一个函数,这样就可以轻松地并行化

with Pool() as p:
    processed = p.map(processItem, lst)
如果您使用的是Python 2,
Pool()
不能用作上下文管理器,但您可以这样使用它:

p = Pool()
processed = p.map(processItem, lst)
将为
lst
中的每个元素调用函数
processItem()
,结果将创建一个新的列表
已处理
(保留顺序)


函数
Pool()
产生尽可能多的CPU核心进程工人,并在前一个任务完成后立即执行新任务,直到每个元素都已处理完毕。

这是使用模块和函数的完美示例(请注意,
线程化
模块不能用于提高速度)

您必须在列表的每个元素上应用一个函数,这样就可以轻松地并行化

with Pool() as p:
    processed = p.map(processItem, lst)
如果您使用的是Python 2,
Pool()
不能用作上下文管理器,但您可以这样使用它:

p = Pool()
processed = p.map(processItem, lst)
将为
lst
中的每个元素调用函数
processItem()
,结果将创建一个新的列表
已处理
(保留顺序)


函数
Pool()
产生尽可能多的进程工作者,使您的CPU拥有内核,并且在上一个任务完成后,它会立即执行新任务,直到每个元素都已处理完毕。

谢谢您的建议。我会努力实施的。谢谢你的建议。我将努力实现这一点。