. 1 importação SO 2 importação multiprocessamento 3. Importação SO 4. Importação Tempo 5. 6. DEF copy_file (old_file, novoarquivo, Q): . 7 "" " Data Copy " "" . 8 old_f = Aberto (old_file, ' RB ' ) . 9 old_content = old_f.read () 10 old_f.close () . 11 # abrir uma nova cópia do arquivo começar 12 é # impressão (o os.listdir (novoarquivo)) 13 é new_filex = open (novoarquivo, ' WB ') 14 new_filex.write (old_content) 15 new_filex.close () 16 . Q.put (1 ) . 17 . A time.sleep (1 ) 18 é . 19 DEF principal (): 20 é # . 1, adquire o nome de cada ficheiro de pasta 21 é old_path = I & lt ' L: \ Teste ' 22 é OLD_FILENAME = o os.listdir (old_path) 23 é # impressão (OLD_FILENAME) 24 # 2, para criar uma nova pasta para armazenar uma cópia de um 25 new_path P & lt = ' L: \\ ' 26 é NEW_FILENAME = ' testcopy' 27 new_filename_path = os.path.join (new_path, NEW_FILENAME) 28 os.mkdir (new_filename_path) 29 # 3,拷贝函数 30 # copy_file (OLD_FILENAME, old_path, NEW_FILENAME) 31 # 4,创建进程池 32 po = multiprocessing.Pool (3 ) 33 q = multiprocessing.Manager () Fila (). 34 para x em OLD_FILENAME: 35 old_file = os.path.join (old_path, x) 36 novoarquivo = os.path.join (new_filename_path, x) 37 po.apply_async (copy_file, (old_file, novoarquivo, Q)) 38 é po.close () 39 # po.join () 40 # . 6, copiar visor progresso, cancelar po.join (), para terminar o ciclo principal do processo enquanto bloqueia por 41 é ao mesmo tempo verdadeira: 42 é NUM = q.qsize () 43 é NUM_ALL = len (OLD_FILENAME) 44 é impressão ( ' \ R & lt cópia progresso de :. 02F %%% ' % (NUM * 100 / NUM_ALL)) 45 sE NUM == NUM_ALL : 46 é RUPTURA 47 48 sE o __name__ == ' __main__ ' : 49 principal ()