FileNotFoundError: El sistema no puede encontrar el archivo especificado:

import os def rename(directory): for name in os.listdir(directory): print(name) os.rename(name,"0"+name) path = input("Enter the file path") rename(path) 

Quiero cambiar el nombre de cada archivo en un directorio determinado para que agregue un 0 al principio del nombre del archivo, sin embargo, cuando bash ejecutar el código aparece este error:

(FileNotFoundError: [WinError 2] El sistema no puede encontrar el archivo especificado: ‘0.jpg’ -> ’00 .jpg ‘)

Estoy seguro de que hay un archivo llamado 0.jpg y no estoy seguro de cuál es el problema.

Lo siento si esta es una pregunta estúpida que soy nuevo en la encoding.

Como está escrito, está buscando un archivo llamado 0.jpg en el directorio de la secuencia de comandos. Quieres estar buscando en el directorio que pasas.

Así que en lugar de hacer:

  os.rename(os.path.join(directory,name), os.path.join(directory,'0'+name)) 

De acuerdo con la respuesta de Bernie, se usa “nombre de archivo” para indicar el nombre de ruta completo / absoluto. Lo de abajo también funcionará.

  os.rename((directory+name),(directory+'0'+name)) 

No puede usar la ruta absoluta a menos que su terminal esté en ese directorio. Por lo tanto puedes hacer lo siguiente:

 def rename(directory): os.chdir(directory) # Changing to the directory you specified. for name in os.listdir(directory): print(name) os.rename(name,"0"+name)