2013-06-05 150 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)