. 1 Importación OS 2 Importación multiprocesamiento 3. Importación OS 4. Importación Tiempo 5. 6. DEF copy_file (archivo_viejo, new_file, Q): . 7 "" " Copia de datos " "" . 8 old_f = Open (archivo_viejo, ' RB ' ) . 9 old_content = old_f.read () 10 old_f.close () . 11 # abren una nueva copia de archivos a empezar 12 es # impresión (la os.listdir (new_file)) 13 es new_filex = abierto (new_file, ' BM ') 14 new_filex.write (old_content) 15 new_filex.close () 16 . Q.put (1 ) . 17 . La time.sleep (1 ) 18 es . 19 DEF main (): 20 es # . 1, adquiere el nombre de cada archivo de carpetas 21 es old_path = R & lt ' G: \ Test ' 22 se old_filename = la os.listdir (old_path) 23 es # impresión (old_filename) 24 # 2, para crear una nueva carpeta para almacenar una copia de un 25 new_path R & lt = ' G: \\ ' 26 es 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 () de la cola (). 34 para x en old_filename: 35 archivo_viejo = os.path.join (old_path, x) 36 new_file = os.path.join (new_filename_path, x) 37 po.apply_async (copy_file, (archivo_viejo, new_file, Q)) 38 es po.close () 39 # po.join () 40 # . 6, copie pantalla progreso, cancelar po.join (), para terminar el bucle principal de proceso mientras que el bloqueo por 41 es el tiempo verdadero: 42 es NUM = q.qsize () 43 se NUM_ALL = len (old_filename) 44 es de impresión ( ' progreso \ R ^ copia de :. 02F %%% ' % (NUM * 100 / NUM_ALL)) 45 SI NUM == NUM_ALL : 46 es PAUSA 47 48 SI el __name__ == ' __main__ ' : 49 main ()