python多進程拷貝數據
阿新 • • 發佈:2019-04-19
all spa 輸入 拷貝文件 for NPU 顯示 pri apply
from multiprocessing import Pool,Manager import os #完成拷貝文件 def copyFile(filename,oldname,newname,que): "拷貝文件函數" # 三部操作 讀取內容,寫入內容 關閉 que.put(filename) br = open(oldname+‘/‘+filename,‘rb‘) bw = open(newname+‘/‘+filename,‘wb‘) content = br.read() bw.write(content)#關閉源文件和目標文件 br.close() bw.close() def fun(): #1、提示輸入要拷貝的文件名字 oldname = input("請輸入你要拷貝的文件夾名字或者路徑:") #2.創建文件夾,存放拷貝內容 newname = oldname + ‘拷貝內容‘ os.mkdir(newname) #3.獲取oldname中的目錄和文件名字 filenames = os.listdir(oldname) print(filenames) # #4.過濾文件 #filename = solute(filenames) #利用多進程的方式拷貝數據 po = Pool(5) #進程數量 que = Manager().Queue() for fileName in filenames: po.apply_async(copyFile,args=(fileName,oldname,newname,que)) con = 0 allcon = len(filenames) while True:#用主進程來顯示拷貝進度 dd = que.get() con+=1 print(‘拷貝進度:%.2f%%‘%((con/allcon)*100),end=‘‘) if con==allcon: print("恭喜你拷貝完成") break if __name__==‘__main__‘: fun()
python多進程拷貝數據