How to rename multiple files recursively using Python?



You can use os.walk to recursively walk through the directory and subsequently use os.rename to rename the files.

Example

import os
def replace(folder_path, old, new):
    for path, subdirs, files in os.walk(folder_path):
        for name in files:
            if(old.lower() in name.lower()):
                file_path = os.path.join(path,name)
                new_name = os.path.join(path,name.lower().replace(old,new))
                os.rename(file_path, new_name)

You can use this function as follows −

replace('my_folder', 'IMG', 'Image')

This will find all files recursively within the folder and its sub-folders and replace IMG with Image in each one of them. You can modify the function as it suits you for a better result suited to your need.


Advertisements