1 # -*- coding:utf-8 -*- 2 # Author:Sure Feng 3 4 import os 5 import multiprocessing 6 import time 7 8 def copy_dir(src_dir, file, dest_dir, queue): 9 """文件夹复制"""10 # 打开文件11 src_file = open((src_dir + "/" + file), "rb")12 dest_file = open(dest_dir + "/" + file, "wb")13 # 读写文件14 data = src_file.read()15 dest_file.write(data)16 # 传递进度17 queue.put(1)18 # 关闭文件19 src_file.close()20 dest_file.close()21 22 if __name__ == '__main__':23 # 获取源文件夹名24 src_dir = input("请输入源文件夹名称:")25 # 获取源文件夹内的文件列表名26 file_list = os.listdir(src_dir)27 # 获取目标文件夹28 dest_dir = src_dir + "_备份"29 os.mkdir(dest_dir)30 # 创建队列,显示进度31 queue = multiprocessing.Queue()32 33 # 创建多进程,完成文件复制34 for file in file_list:35 pro = multiprocessing.Process(target=copy_dir, args=(src_dir, file, dest_dir, queue))36 pro.start()37 38 complish_len = 039 while True:40 if complish_len == len(file_list):41 break42 complish_len += queue.get()43 time.sleep(0.4)44 45 print("\r 当前进度已完成 %.2f %%" % (complish_len/len(file_list) * 100), end="")