以下是一个示例代码,演示如何并行运行并在每个文件夹中创建输出文件:
import os
from multiprocessing import Pool
# 定义并行处理的函数
def process_folder(folder):
# 创建输出文件的路径
output_file = os.path.join(folder, 'output.txt')
# 在输出文件中写入内容
with open(output_file, 'w') as f:
f.write("This is the output file in folder: " + folder)
# 获取所有文件夹的路径
folder_paths = ['/path/to/folder1', '/path/to/folder2', '/path/to/folder3']
# 创建进程池,设置并行运行的进程数量
pool = Pool(processes=3)
# 并行运行处理函数
pool.map(process_folder, folder_paths)
# 关闭进程池
pool.close()
pool.join()
在上面的代码中,首先定义了一个process_folder
函数,用于处理每个文件夹。在这个函数中,我们根据文件夹路径创建了一个输出文件的路径,并在输出文件中写入了一些内容。
然后,我们将所有文件夹的路径存储在folder_paths
列表中。接下来,我们创建了一个进程池pool
,并设置了并行运行的进程数量为3。
最后,我们使用pool.map
函数并行运行处理函数process_folder
,并将文件夹路径作为参数传递给它。pool.map
函数会自动将每个文件夹路径分配给可用的进程进行处理。
最后,我们关闭进程池并等待所有进程完成。
注意:上述示例中使用了multiprocessing.Pool
来实现并行处理。如果你的代码在Windows系统上运行,并且需要使用if __name__ == '__main__':
来保护主程序入口点,请将上述示例代码放在if __name__ == '__main__':
块中。