import multiprocessing import os,time,random,sys from PyQt5.Qt import QApplication,QWidget,QFileDialog def getDir(): ‘‘‘ 利用pyqt5 获取目录路径 return:str ‘‘‘ app = QApplication(sys.argv) path = QFileDialog.getExistingDirectory() return path def copy_file(source_dir,file_name,dest_dir): ‘‘‘ 具体的工作函数 :return:None ‘‘‘ with open(source_dir+‘/‘+file_name,‘r‘) as f_source,open(dest_dir+‘/‘+file_name,‘w‘) as f_dest: text = f_source.read() f_dest.write(text) print("拷贝完成") def main(): #获取要复制的文件夹 source_dir = getDir() #目标文件夹 dest_dir = source_dir +"[副本6]" #创建文件夹 try: os.mkdir(dest_dir) except: print("文件夹已经存在") #获取这个文件夹中的所有普通文件名 file_names = os.listdir(source_dir) # print(file_names) #创建进程池 pool = multiprocessing.Pool(5) t1 = time.time() for file_name in file_names: pool.apply_async(copy_file,args=(source_dir,file_name,dest_dir)) pool.close() pool.join() print("总用时:{}".format(time.time()-t1)) if __name__ == ‘__main__‘: main() ‘‘‘ 测试结果 下为进程池里进程的个数对时间的影响 (此时为 100 个文件) 1 0.6582393646240234 2 0.546534538269043 3 0.5874290466308594 5 0.6821753978729248 10 0.6153411865234375 下为进程池里进程的个数对时间的影响 (此时为 1000 个文件) 1 1.9657423496246338 2 1.3813047409057617 3 1.304509162902832 5 1.4211978912353516 10 1.2317066192626953 ‘‘‘
原文:https://www.cnblogs.com/zach0812/p/11424238.html