import multiprocessing
import os
""""导入模块"""
def copy_file(src_path, des_path, file, queue):
src_file = open(os.path.join(src_path, file), "rb")
des_file = open(os.path.join(des_path, file), "wb")
while True:
file_content = src_file.read(4096)
if file_content:
des_file.write(file_content)
else:
break
src_file.close()
des_file.close()
queue.put(file)
def main():
src_path = input("请输入要备份的源目录")
des_path = src_path + "[backup]"
os.mkdir(des_path)
file_list = os.listdir(src_path)
queue = multiprocessing.Queue(128)
for file in file_list:
pro = multiprocessing.Process(target=copy_file, args=(src_path, des_path, file, queue))
pro.start()
count = 0
while True:
file = queue.get()
count += 1
print("\r当前进度%% %.2f" % (count/len(file_list)*100), end="")
if count == len(file_list):
break
if __name__ == '__main__':
main()