文件夹复制器

 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 = 0
39     while True:
40         if complish_len == len(file_list):
41             break
42         complish_len += queue.get()
43         time.sleep(0.4)
44 
45         print("
 当前进度已完成 %.2f %%" % (complish_len/len(file_list) * 100), end="")
原文地址:https://www.cnblogs.com/sure-feng/p/10325729.html