python多进程拷贝数据
作者:互联网
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,filename,newname,que,oldname,进程,拷贝,filenames 来源: https://www.cnblogs.com/jdhthome/p/10737773.html