2014-06-19 78 views
1

我在Windows資源管理器中有3個主文件夾,其中包含名爲ALB_01_00000_intsect_d.kml或Baxters_Creek_AL_intsect_d.kml的文件。儘管名字改變了我想要從所有這些文件中刪除的一致性,但是「_intsect_d」。希望爲每個文件夾中的所有文件執行此操作。這些文件的擴展名爲.kml。根據上面的例子,我期待的結果是ALB_01_00000.kml,另一個是 Baxters_Creek_AL.kml。不太瞭解Python的編程知識,但希望能幫助編寫一個可以實現上述結果的腳本。由於從批處理文件中刪除字符

+0

請仔細閱讀這個問題 - 這可能是有用的:http://stackoverflow.com/questions/24297468/removing-字符,從文件名,在批 –

回答

4
import os 
for filename in os.listdir('dirname'): 
    os.rename(filename, filename.replace('_intsect_d', '')) 
0

該代碼可用於一個目錄中刪除任何特定的字符或所有文件名字符集的遞歸與其他任何字符,字符集或沒有字符替換它們。

import os 

paths = (os.path.join(root, filename) 
     for root, _, filenames in os.walk('C:\FolderName') 
     for filename in filenames) 

for path in paths: 
    # the '#' in the example below will be replaced by the '-' in the filenames in the directory 
    newname = path.replace('#', '-') 
    if newname != path: 
     os.rename(path, newname) 
0

我沒有足夠的聲望來評論尼古拉斯的解決方案,但是如果任何文件夾名稱包含您要替換的字符,則代碼會中斷。

舉例來說,如果你想newname = path.replace('_', '')但你的路徑看起來像/path/to/data_dir/control_43.csv你會得到一個OSError: [Errno 2] No such file or directory