下面是一个使用Python并行处理文本文件的示例代码:
import os
from multiprocessing import Pool
def process_file(file_path):
# 读取文件
with open(file_path, 'r') as file:
content = file.read()
# 处理文件内容
processed_content = content.upper()
# 将处理后的内容写入新文件
new_file_path = os.path.splitext(file_path)[0] + '_processed.txt'
with open(new_file_path, 'w') as new_file:
new_file.write(processed_content)
if __name__ == '__main__':
# 获取所有待处理的文件路径
files = ['file1.txt', 'file2.txt', 'file3.txt']
# 使用进程池并行处理文件
with Pool() as pool:
pool.map(process_file, files)
上述代码中,首先定义了一个process_file
函数,用于处理单个文件。在该函数中,我们使用open
函数读取文件内容,然后对内容进行处理,这里示例中将内容转换为大写字母。处理完成后,我们将处理后的内容写入新的文件中。
在__main__
中,我们定义了一个包含待处理文件路径的列表。然后使用Pool
类创建一个进程池,Pool
的默认大小为机器上的CPU核心数。使用map
方法,将process_file
函数应用到文件列表中的每个文件,实现并行处理。
需要注意的是,在使用Pool
类时,代码必须放在if __name__ == '__main__':
条件判断下,以避免在子进程中重复启动新的子进程。
上一篇:并行处理图像像素
下一篇:并行处理相同数据的分离分支