2013-07-27 12 views
6

Ho un file che voglio copiato in una directory più volte. Potrebbe essere 100, potrebbe essere 1000. Questa è una variabile.Python - creazione di copie di un file

sono arrivato fino a questo:

import shutil 

count = 0 
while (count < 100): 
    shutil.copy2('/Users/bubble/Desktop/script.py', '/Users/bubble/Desktop/pics') 
    count = count + 1 

Si mette 1 copia del file nella directory, ma solo 1 file. La mia ipotesi è che non aggiunge automaticamente un 2,3,4,5 eccetera alla fine del file come farebbe se copiassi e incollassi.

Qualche idea su come procedere?

Saluti.

+0

Non modificare il nome del file in modo che si stia eseguendo l'override. – zhangyangyu

risposta

7

Uso str.format:

import shutil 

for i in range(100): 
    shutil.copy2('/Users/bubble/Desktop/script.py', '/Users/bubble/Desktop/pics/script{}.py'.format(i)) 

Per rendere ancora più utile, si può aggiungere l'identificatore di formato {:03d} (numeri 3 cifre, ad esempio 001, 002 etc.) o {:04d} (4 numeri a due cifre, ad esempio 0001 , 0002 ecc.) In base alle loro esigenze come suggerito da @Roland Smith.

+0

Questo ha fatto il trucco. Perfezionare. Grazie flasetru – BubbleMonster

+1

Si potrebbe voler usare lo specificatore di formato '{: 03d}'. In questo modo i file sarebbero elencati nell'ordine corretto. –

+0

Grazie Roland. Lo metterò alla prova ora. – BubbleMonster