您的位置:首页 > 编程语言 > Python开发

Python多进程拷贝文件夹中的所有文件

2017-09-05 11:24 330 查看
import os
from multiprocessing import Pool,Manager

def copyFileTask(name,old_name,new_name,q):
"""文件复制"""
file_r=open(old_name+"/"+name)
file_w=open(new_name+"/"+name,"w")
content=file_r.read()
file_w.write(content)
file_w.close()
file_r.close()
q.put(name)
def main():
import os
from multiprocessing import Pool,Manager

def copyFileTask(name,old_name,new_name,q):
"""文件复制"""
file_r=open(old_name+"/"+name)
file_w=open(new_name+"/"+name,"w")
content=file_r.read()
file_w.write(content)
file_w.close()
file_r.close()
q.put(name)
def main():
#让用户输入想要拷贝的文件夹的全路径
old_name=input("请输入想要拷贝的文件夹的全路径:")
#将文件拷入到哪个文件夹中
new_name=old_name+"-附件"
# print("old:%s------new:%s"%(old_name,new_name))
#创建出新文件夹
os.mkdir(new_name)
#读取出想要拷贝的文件夹中的所有文件
file_list=os.listdir(old_name)
allNum=len(file_list)
copy_num=0
p=Pool(5)
q=Manager().Queue()
for name in file_list:
p.apply_async(copyFileTask,args=(name,old_name,new_name,q))
# p.close()
# p.join()
while copy_num<allNum:
q.get()
copy_num+=1
copyRate=copy_num/allNum
print("\r已经复制了:%.2f%%"%(copyRate*100),end="")

if __name__ == '__main__':
main()

#让用户输入想要拷贝的文件夹的全路径 old_name=input("请输入想要拷贝的文件夹的全路径:") #将文件拷入到哪个文件夹中 new_name=old_name+"-附件" # print("old:%s------new:%s"%(old_name,new_name)) #创建出新文件夹 os.mkdir(new_name) #读取出想要拷贝的文件夹中的所有文件 file_list=os.listdir(old_name) allNum=len(file_list) copy_num=0 p=Pool(5) q=Manager().Queue() for name in file_list: p.apply_async(copyFileTask,args=(name,old_name,new_name,q)) # p.close() # p.join() while copy_num<allNum: q.get() copy_num+=1 copyRate=copy_num/allNum print("\r已经复制了:%.2f%%"%(copyRate*100),end="")if __name__ == '__main__': main()

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: