Python:并行处理列表中的N个文件

use*_*147 4 python list

有我正在用某种功能一一处理的文件列表:

list_of_files = [file_1, file_2, file_3, .... file_n]

# each file we are processing in function function_x(file)

for file in list_of_files:
   function_x(file)
Run Code Online (Sandbox Code Playgroud)

但处理一个文件需要太长时间,所以我想并行处理 4 个文件,当其中任何一个文件完成后,继续下一个表单 list_of_files

Dim*_*osh 5

尝试使用并行映射

import multiprocessing
pool = multiprocessing.Pool()
pool.map(function_x, list_of_files)
Run Code Online (Sandbox Code Playgroud)

  • @user3292147如果您阅读`Pool`的文档,它会说*“如果进程是`None`,则使用`cpu_count()`返回的数字”*因此它不会为`N`文件创建进程,它会除非您另有说明,否则最多创建“cpu_count”个进程。 (2认同)