2013-07-27 17 views
6

Mam plik, który chcę skopiować kilka razy do katalogu. Może wynosić 100, może wynosić 1000. To jest zmienna.Python - tworzenie kopii pliku

wymyśliłem to:

import shutil 

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

Stawia 1 kopię pliku w katalogu, ale tylko 1 plik. Domyślam się, że nie dodaje automatycznie 2, 3, 4, 4 itd. Na końcu pliku, tak jak w przypadku kopiowania i wklejania.

Jakieś pomysły, jak to zrobić?

Pozdrawiam.

+0

Nie zmieniasz nazwy pliku, więc jest ona zastąpiona. – zhangyangyu

Odpowiedz

7

Zastosowanie str.format:

import shutil 

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

Aby uczynić go jeszcze bardziej użyteczne, można dodać specyfikator formatu {:03d} (numery 3 cyfra, czyli 001, 002 itd) lub {:04d} (4 cyfrowe numery, czyli 0001 , 0002 itp.) Zgodnie z ich potrzebami, jak sugeruje @Roland Smith.

+0

To załatwiło sprawę. Idealny. Dzięki flasetru – BubbleMonster

+1

Możesz użyć specyfikatora formatu '{: 03d}'. W ten sposób pliki zostaną wyświetlone we właściwej kolejności. –

+0

Dzięki Roland. Wypróbuję to teraz. – BubbleMonster

Powiązane problemy