2013-06-05 5 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

, вы можете сделать это с помощью' ren * .test.txt * .txt', по крайней мере, в Windows (возможно, это простой эквивалент для других ОС –

ответ

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)

Смежные вопросы