import multiprocessing
import os
def copy_file(q,file_name,old_folder_name,new_folder_name):
"""完成文件的复制"""
old_f = open(old_folder_name + '/' + file_name, 'rb')
content=old_f.read()
old_f.close()
"""写入文件"""
new_f=open(new_folder_name+"/"+file_name,'wb')
new_f.write(content)
new_f.close()
q.put(file_name)
def main():
old_folder_name=input("请输入要复制的文件夹的名字:")
try:
new_folder_name=old_folder_name+"[复件]"
os.mkdir(old_folder_name+"[复件]")
except:
pass
file_names=os.listdir(old_folder_name)
print(file_names)
po=multiprocessing.Pool(5)
q=multiprocessing.Manager().Queue()
for file_name in file_names:
po.apply_async(copy_file,args=(q,file_name,old_folder_name,new_folder_name))
po.close()
all_file_num=len(file_names)
copy_ok_num=0
while True:
file_name=q.get()
print("---已经完成copy: %s"% file_name)
copy_ok_num+=1
print("拷贝的进度为:%.2f %%" %(copy_ok_num*100/all_file_num),end="")
if copy_ok_num>=all_file_num:
break
if __name__=="__main__":
main()
转载请注明原文地址:https://blackberry.8miu.com/read-9604.html