copiar archivos de múltiples procesos Sección VI

. 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 ()

 

Supongo que te gusta

Origin www.cnblogs.com/kogmaw/p/12575482.html
Recomendado
Clasificación