Si no te importa el uso de expresiones regulares, entonces esta función sería darle tanto poder en renombrar archivos:
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))
Así que en tu ejemplo, se podría hacer (asumiendo que es el directorio actual donde los archivos eres):
renamer("*.doc", r"^(.*)\.doc$", r"new(\1).doc")
pero también se puede volver a utilizar los nombres de los archivos iniciales:
renamer("*.doc", r"^new\((.*)\)\.doc", r"\1.doc")
y más.
¿Cómo se usa el símbolo '%' en el comando 'os.path.join (dir, titlePattern% title + ext)'? Sé que '%' es para el funcionamiento del módulo y también se usa como operador de formateo. Pero generalmente es seguido por 's' o' f' para especificar el formato. ¿Por qué no hay nada (espacio) inmediatamente después de '%' en dicho comando? –
@ShashankSawant Es de hecho un operador de formateo. Consulte [Operaciones de formato de cadena] (https://docs.python.org/2/library/stdtypes.html#string-formatting) para obtener documentación y uso de la muestra. – DzinX