2013-01-23 55 views
0

我想複製位於目錄中的文件,該文件等於其他文件位於該目錄中的次數,然後重命名所有新文件。在特定模式下複製和重命名目錄中的文件

例如,目錄中有3個文件,filename1.xls,filename2.xls和filename3.xls。我想複製Filename1.xls 2次(因爲目錄中有2個文件,不包括filename1.xls),然後將每個複製的文件重命名爲filename2.xls和fiilename3.xls。希望我的問題很明確。謝謝,AD

+1

你想取一個文件並用第一個文件的副本覆蓋目錄中的所有其他文件? – eumiro

回答

0

陛下...只是得到目錄中的文件的數量,複製文件N次,並將其保存爲

for number in range(amount): 
    "feliname%r.xls" % number 

如果我明白你的意思

+0

filenames = os.listdir(「C:/」) 我在範圍內(len(文件名)): 如果filenames [i] .startswith(「F」): 這是我開始的一段代碼用。 我想創建'master.xls'文件的多個副本,它也位於同一個目錄中。副本數量將等於該目錄中以字母'F'開頭的文件數。然後,我希望將所有新創建的'master.xls'的副本重新命名爲以「F」開頭的文件名。例如,三個文件名以「F」開頭,我想製作'master.xls'的3個副本,然後用以「F」開頭的原始名稱重新命名。 – user2001139

+0

@ user2001139:不要將相關信息放在評論中,[編輯您的問題](http://stackoverflow.com/posts/14480589/edit)。 – jfs

+0

因此請創建一個以F開頭的文件列表並保存這些名稱的副本。 –

0

要替換的內容

#!/usr/bin/env python 
import os 
import shutil 
import sys 

filename = sys.argv[1] # provide file you want to multiply 
dirname, basename = os.path.split(filename) 
for name in os.listdir(dirname): 
    path = os.path.join(dirname, name) 
    #note: os.path.normcase() might be required to compare names 
    if name.startswith("F") and name != basename and os.path.isfile(path): 
     shutil.copy2(filename, path) #note: some metadata is not copied 

注意:有與"F"啓動和相鄰的在其複製命令行給出的文件名中的所有文件如果複製失敗;目標文件可能被破壞。在更換目的地之前,您可以先複製臨時文件。

相關問題