Normal ifadeler kullanmaktan çekinmiyorsanız, bu işlev dosyaları yeniden adlandırmada size çok fazla güç verecektir:
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))
Dolayısıyla, örneğinizde şunları yapabilirsiniz (dosyaların bulunduğu geçerli dizin olduğunu varsayarak):
renamer("*.doc", r"^(.*)\.doc$", r"new(\1).doc")
ancak ilk dosya adlarına da geri dönebilirsiniz:
renamer("*.doc", r"^new\((.*)\)\.doc", r"\1.doc")
ve dahası.
%
sembol nasıl kullanılıros.path.join(dir, titlePattern % title + ext)
?%
Modulo işlemi için olduğunu biliyorum ve aynı zamanda biçimlendirme operatörü olarak da kullanılıyor. Ancak, genellikle biçimini belirtmek içins
veyaf
ile izlenir . Neden%
adı geçen komuttan hemen sonra hiçbir şey (boşluk) yok ?