gpt4 book ai didi

python - 使用不同的线程读取文件

转载 作者:行者123 更新时间:2023-11-30 23:32:16 26 4
gpt4 key购买 nike

我正在尝试使用 Python 读取和修改多个文件的每一行。每个文件都有数千到数十万行,因此每个文件只有在处理另一个文件之后才会被处理。我正在尝试读取以下文件:

csvReader = csv.reader(open("file","r")
for row in csvReader:
handleRow(row)

我想使用多线程来使用不同的线程并行读取每个文件,以节省时间。谁能指出它是否有用以及如何实现?

最佳答案

它可能有用,也可能没用——如果所有文件都在同一个驱动器上,并且您已经以最快的速度插入驱动器,那么多路复用只会减慢速度。但如果您没有最大化 I/O,它会加快速度。

至于如何做到这一点,那是微不足道的。将代码包装在采用路径名的函数中,然后使用并发.futures.ThreadPoolExecutor 或 multiprocessing.dummy.Pool,只需一行代码即可将您的函数映射到整个可迭代的路径名:

with ThreadPoolExecutor(4) as executor:
executor.map(func, paths)

还有一件事:如果你不能最大化 I/O 的原因是因为你在每一行上做了太多的 CPU 工作,线程在 Python 中不会有帮助(因为 GIL),但是你可以只使用进程——完全相同的代码,但使用 ProcessorPoolExecutor。

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

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