Если вы не против использования регулярных выражений, эта функция даст вам много возможностей при переименовании файлов:
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")
и больше.
%
символ используется в командеos.path.join(dir, titlePattern % title + ext)
? Я знаю, что%
это для операции по модулю, а также используется в качестве оператора форматирования. Но обычно за ним следуетs
или,f
чтобы указать формат. Почему%
в указанной команде сразу после ничего (пробела) нет ?