Если вы не возражаете против использования регулярных выражений, то эта функция даст вам много возможностей в переименовании файлов:
import re, glob, os
def renamer(files, pattern, replacement):
for pathname in glob.glob(files):
basename= os.path.basename(pathname)
new_filename= re.sub(pattern, replacement, basename)
if new_filename != basename:
os.rename(
pathname,
os.path.join(os.path.dirname(pathname), new_filename))
Итак, в вашем примере вы могли бы сделать (при условии, что это текущий каталог, в котором находятся файлы):
renamer("*.doc", r"^(.*)\.doc$", r"new(\1).doc")
но вы также можете вернуться к исходным именам файлов:
renamer("*.doc", r"^new\((.*)\)\.doc", r"\1.doc")
и более.