es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cambiar el nombre del archivo usando python

Tengo una carpeta donde tengo varios archivos. De estos archivos, quiero cambiar el nombre de algunos. Por ejemplo: Informe PB Diciembre21 Norte.xlsb, Informe PB Noviembre21 Norte.xslb y así sucesivamente. Todos ellos tienen el mismo inicio – Informe PB. Me gustaría cambiar su nombre y dejar solo Informe PB y el mes. Por ejemplo, Informe PB Diciembre.

He intentado este código:

import os

path = r'C://Users//greencolor//Desktop//Autoreport//Load_attachments//'
for filename in os.listdir(path):
    if filename.startswith("Informe PB"):
     os.rename(filename, filename[:-8])

El “-8” indica que quiero dividir el nombre desde el final en el octavo carácter.

Obtengo este error:

FileNotFoundError: [WinError 2] El sistema no puede encontrar el archivo especificado

¿Algún consejo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema puede estar en la ruta especificada. Asegúrate de que la ruta sea correcta y que las barras invertidas estén correctamente escapadas. También puedes intentar utilizar la función os.path.join() para construir la ruta.

    Aquí tienes un fragmento de código actualizado:

    import os
    
    ruta = os.path.join('C:', 'Users', 'greencolor', 'Desktop', 'Autoreport', 'Load_attachments')
    for nombre_archivo in os.listdir(ruta):
        if nombre_archivo.startswith("PB report"):
            nuevo_nombre = nombre_archivo[:len("PB report")+9]  # Agregar 9 caracteres para el mes (incluyendo el espacio)
            os.rename(os.path.join(ruta, nombre_archivo), os.path.join(ruta, nuevo_nombre))
    

    Esto debería renombrar cualquier archivo que comience con “PB report” para que incluya solamente “PB report” y el mes.

Comments are closed.