MY_1129
MY_1129

Reputation: 317

Rename the files' names

I'd like to change the files whose extension are '.test.txt' into '.txt'. As my codes as below, it cannot work cause invalid syntax happened to the place of 'if'. Could you please figure out it? Thank you so much.

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)

Upvotes: 0

Views: 97

Answers (1)

abhishekgarg
abhishekgarg

Reputation: 1473

this should work...

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)

you did not define the new file path, in renaming action you have to supply the full file path, os.rename(src_path, dest_path)

Upvotes: 1

Related Questions