2012-11-06 71 views
0

我想使用Python來命名其包含的值,如文件名重命名文件名:~test1~test2~filename.csv提取值/ Python中

我要重命名的文件filename.csv。撇號是前兩個單詞的分隔符,我不想讓這些單詞出現在我的結局文件名中。這些詞是變數。任何援助將不勝感激。謝謝!

+0

我是相當新的Python所以我想學習正則表達式,分割/聯合提取。我可以對直接文件名進行重命名,但是我試圖根據單詞一致模式/字符提取文件名,以提取我需要的內容。 – user1801715

+0

我已經與.rename一起完成了glob,但是沒有考慮到通配符。 – user1801715

+1

將這些信息包含在自己的問題中通常很有幫助,通常使用您嘗試的確切代碼。它向人們表明,在發佈問題之前,你已經花時間嘗試自己,並且讓他們從哪裏尋找問題或困惑的來源。只是一個友好的提示。 – yarian

回答

1

由於每個文件名稱的單詞更改最好在目錄中搜索匹配模式的文件。 glob是爲你做的。

如果你有一個這樣的目錄:

. 
├── ~a~b~c.csv 
├── file.csv 
├── ~foo~bar~f1.csv 
└── hello.txt 

然後運行以下命令:

import os, glob 
for f in glob.glob('~*~*~*.csv'): 
    os.rename(f,f.split('~')[-1]) 

會給你:

. 
├── c.csv 
├── f1.csv 
├── file.csv 
└── hello.txt 
+0

很好的答案。與我的建議相比,更通用。 –

+0

非常有幫助......非常感謝你! – user1801715

1
import os 

myfilename = "~test1~test2~filename.csv" 

for filename in os.listdir("."): 
    if filename == myfilename: 
     myfilename_new = myfilename.split("~")[-1] 
     os.rename(filename, myfilename_new) 

當然假設你的原始文件~test1~test2~filename.csv存在於這個python腳本運行的「當前/同一目錄」中。

希望這可以幫助你在你的學習之旅!

歡迎來到Python!

+0

非常有幫助,非常感謝你的幫助 – user1801715