Python-从子目录读取文件并创建csv文件列表输出的多处理

Python-从子目录读取文件并创建csv文件列表输出的多处理,python,multiprocessing,Python,Multiprocessing,我是python新手 我正在尝试读取子文件夹中的所有pdf文件,并将每个文件的名称和文件路径添加到csv文件中。(本部分代码有效) 我想使用多处理来更快地读取所有这些文件,并创建csv文件输出 有人能给我一些提示吗 多谢各位 import os import csv # Right function using slice def right(s, amount): return s[-amount:] # File Directory search_directory ="C:/My

我是python新手

我正在尝试读取子文件夹中的所有pdf文件,并将每个文件的名称和文件路径添加到csv文件中。(本部分代码有效)

我想使用多处理来更快地读取所有这些文件,并创建csv文件输出

有人能给我一些提示吗

多谢各位

import os
import csv
# Right function using slice
def right(s, amount):
    return s[-amount:]

# File Directory
search_directory ="C:/Myfolder/"
# File Name for Output CSV
output_file = right(search_directory,8) +'_pdf_files_.csv'

with open(output_file, 'w',newline='') as csvfile:
    list_writer= csv.writer(csvfile,delimiter=',',quotechar=',', quoting=csv.QUOTE_MINIMAL)
    for path,sub, files in os.walk(search_directory):
     for filename in files:
       if filename.endswith('.pdf'):
        file_path = os.path.join(path,filename)
        file_list =[file_path, filename[5:15]]
        list_writer.writerow(file_list)
        print('Reading:'+ filename)


事实上,如果您的代码受CPU限制,多处理模块可能会加快代码的速度。如果是io受限,我不确定你能获得多少。同样,用一个模块写入同一个csv文件也不是那么容易,甚至可能会减慢速度。你能运行你的程序并检查你的进程占用了多少CPU吗。如果需要的时间少于100%,那么我猜您的代码不受CPU限制,多CPU处理也不会有帮助。也许仅仅删除打印将大大加快您的代码速度?正如@gelonida所述,向该代码添加多处理可能不会对您有任何帮助,因为它是IO绑定的。但是,我不得不问,你的文件夹里有多少pdf文件?您真的需要使用
多处理
运行此操作吗?还是为了学习如何做?我不需要打印文件名。肯定会有帮助。@JohanL每天大约有5-6万个PDF。事实上,如果您的代码CPU有限,多处理模块可能会加快代码的速度。如果是io受限,我不确定你能获得多少。同样,用一个模块写入同一个csv文件也不是那么容易,甚至可能会减慢速度。你能运行你的程序并检查你的进程占用了多少CPU吗。如果需要的时间少于100%,那么我猜您的代码不受CPU限制,多CPU处理也不会有帮助。也许仅仅删除打印将大大加快您的代码速度?正如@gelonida所述,向该代码添加多处理可能不会对您有任何帮助,因为它是IO绑定的。但是,我不得不问,你的文件夹里有多少pdf文件?您真的需要使用
多处理
运行此操作吗?还是为了学习如何做?我不需要打印文件名。肯定会有帮助。@JohanL每天大约有5-6万个PDF。