Python 实现多进程复制文件

来源:互联网 发布:如何管理顾客数据 编辑:程序博客网 时间:2024/05/19 23:05
from multiprocessing import Pool,Managerimport osdef copyFileTask(names,oldFolderName,newFolderName,queue):    #打印文件的函数    fr = open(oldFolderName+"/"+names)    fw = open(newFolderName+"/" + names , "w")    content = fr.read()    fw.write(content)    fw.close()    fr.close()    queue.put(names)                #进程之间通信,用于打印进度def main():    oldFolderName = input("please input the name that you want to delete: ")      #输入要拷贝的文件的名字    newFolderName = oldFolderName + "-复件"    os.mkdir(newFolderName)     #创建新的文件夹    fileName = os.listdir(oldFolderName)       pool = Pool(5)              #创建五个进程    queue = Manager().Queue()    for i in fileName:        pool.apply_async(copyFileTask,args=(i,oldFolderName,newFolderName,queue))    num = 0    allNum = len(fileName)    while(True):        queue.get()        num += 1        copyRate = num / allNum        print("\rcopy的进度是:%.2f%%"%(copyRate*100),end="")        if num == allNum:            breakif __name__ == "__main__":    main()