Если вы не против использования регулярных выражений, эта функция даст вам много возможностей при переименовании файлов:
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чтобы указать формат. Почему%в указанной команде сразу после ничего (пробела) нет ?