2013-06-05 179 views
0

我想將擴展名爲「.test.txt」的文件更改爲「.txt」。 作爲我的代碼如下,它不能工作導致'if'的地方發生無效的語法。 你能弄清楚它嗎? 非常感謝。重命名文件的名稱

import sys 
import os 

path = "Dir" 
for(dirpath,dirnames,files)in os.walk(path): 
    for filename in files: 
      filepath = os.path.join(dirpath,filename) 
    if '.test.txt' in filename: 
      newfilename = filename.replace('.test.txt','.txt') 
      os.rename(filename,newfilename) 
+1

你壓痕送行那點... – mgilson

+0

這個縮進是否與原來的縮進相匹配?你的'if'應該在'filepath = ...'行 – marlenunez

+0

下縮進,至少在windows下可以用'ren * .test.txt * .txt'來做到這一點(對於其他操作系統, –

回答

1

這應該工作...

import sys 
import os 

path = r"Dir" 
for dirpath,dirnames,files in os.walk(path): 
    for filename in files: 
     filepath = os.path.join(dirpath,filename) 
     if '.test.txt' in filename: 
      newfilename = filename.replace('.test.txt','.txt') 
      newfilepath = os.path.join(dirpath, newfilename) 
      os.rename(filepath, newfilepath) 

你沒有定義新的文件路徑,在重命名的動作,你必須提供完整的文件路徑,os.rename(src_path, dest_path)