2011-06-08 68 views
0

我有一些生成生成文件,並且它們都有一個隨機部分(校驗和號碼)。我想重新命名具有隨機部分(在其文件名中)到特定文件的文件

如何將它們重命名爲唯一名稱並在Python中執行它們?

+1

你能舉個例子嗎?聽起來這些文件已經有了獨特的名字。 – 2011-06-08 16:32:07

+0

當然。一個文件名示例將是「Tetris_4_2_R1244_W32_4dbg.exe」,而「_R1244_W32_4dbg」部分將根據版本/內部版本進行更改。我想重命名爲例如「final.exe」 – Pixie 2011-06-08 16:41:32

+0

他們*所有*將重命名爲'final.exe'?或者是否有每個模式的目標名稱? – 2011-06-08 16:46:43

回答

0

如果您確定名稱片段中沒有任何下劃線,您可以將其分開。 name = name.split('_')[0]。這當然不是保存文件的擴展名,但如果所有的輸出文件是EXE文件,你可以name += '.exe'

編輯:


file_list = os.listdir('.') 
for each in file_list: 
    if each[-4:] != '.exe': 
     file_list.pop(file_list.index(each)) 

for each in file_list: 
    name = each.split('_')[0] 
    name += '.exe' 
    os.rename(each, name) 

這並不是很穩定,並要求你在ex中執行它。如果你想長期保持或期望別人使用它,你應該研究正則表達式並使它成爲不可知的路徑。我沒有測試過這個 - 它只是一個黑客攻擊,所以請自行承擔風險;但它應該是非常良性的。它會嘗試重命名目錄中的所有.exe文件。

+0

提供一些代碼會很容易嗎?我是一個新手 - 但嘗試;) – Pixie 2011-06-08 16:50:19

+0

謝謝!我會嘗試它。如果構建版本位於不同目錄中,該怎麼辦? – Pixie 2011-06-08 17:09:09

+0

'os.path'將幫助你以一種操作系統不可知的方式合併路徑和文件名。否則,只需在腳本中設置路徑,並確保將其添加到文件操作的文件名中。您可以使用'+'運算符在python中鏈接字符串。 – tMC 2011-06-08 17:12:51