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
You can replace
os.rename(filename, filename[:-18]+'.mov')
with
os.rename(root + os.sep + filename, root + os.sep + filename[:-18]+'.mov')
The preferred way to join paths is to use os.path.join
, change this line:
os.rename(filename, filename[:-18]+'.mov')
Replace it with this:
os.rename(os.path.join(root, filename), os.path.join(root, filename[:-18]+'.mov'))
Fixed:
import os
for root, dirs, files in os.walk("path"):
for filename in files:
if filename.endswith("[AnnoyingTag].mov"):
os.rename(root+'\\'+filename, root+'\\'+filename[:-18]+'.mov')
I think your problem is that the files you're renaming aren't in the current working directory.