Question

I have a directory full of files, some which have an ampersand in their names. I would like to rename all the files with ampersands and replace each ampersand with a plus (+). I am working with around 10k files. What would be the best method to do this?

Was it helpful?

Solution

import glob, os
for filename in glob.glob(os.path.join(yourPath, "*&*")):
   os.rename(filename, filename.replace('&','+'))

OTHER TIPS

If you have subdirectories:

import os
for dirpath, dirs, files in os.walk(your_path):
    for filename in files:
        if '&' in filename:
            os.rename(
                os.path.join(dirpath, filename),
                os.path.join(dirpath, filename.replace('&', '+'))
            )
import os
directory = '.'
for file in os.listdir(directory):
    if '&' in file :
        os.rename(file, file.replace('&', '+'))

Replace directory with your own path.

using rename:

$ rename --find '&' --replace '+' *
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top