Search code examples
pythonfilenamesos.walk

Python os.rename and os.walk together


I just wrote a python script to get rid of some annoying suffixes in filenames,

here's my code:

import os

for root, dirs, files in os.walk("path"):

    for filename in files:

        if filename.endswith("[AnnoyingTag].mov"):

            os.rename(filename, filename[:-18]+'.mov')

but I got the error in the last line:

OSError: [Errno 2] No such file or directory

I am pretty sure that I have the right path because I can print out all filenames correctly.

...really have no idea why this can't work.

Thanks for your answers


Solution

  • You can replace

    os.rename(filename, filename[:-18]+'.mov')
    

    with

    os.rename(root + os.sep + filename, root + os.sep + filename[:-18]+'.mov')