2011-11-16 48 views
9

Estoy tratando de cambiar el nombre de todas las imágenes en un directorio. Necesito agregar un par de ceros previos al nombre del archivo. Soy nuevo en Python y escribí el siguiente script.No se puede resolver WindowsError: [Error 2] El sistema no puede encontrar el archivo especificado

import os 

path = "c:\\tmp" 
dirList = os.listdir(path) 

for fname in dirList: 
    fileName = os.path.splitext(fname)[0] 
    fileName = "00" + fname 
    os.rename(fname, fileName) 
    #print(fileName) 

La línea de impresión comentada fue solo para verificar que estaba en el camino correcto. Cuando ejecuto esto obtengo el siguiente error y no sé cómo resolverlo.

Traceback (most recent call last): File "C:\Python32\Code\add_zeros_to_std_imgs.py", line 15, in os.rename(fname, fileName) WindowsError: [Error 2] The system cannot find the file specified

Cualquier ayuda es muy apreciada. Thnx.

Respuesta

15

Debe pasar la ruta absoluta a os.rename. En este momento solo pasa el nombre del archivo. No está mirando en el lugar correcto. Use os.path.join.

Prueba esto:

import os 

path = "c:\\tmp" 
dirList = os.listdir(path) 

for fname in dirList: 
    fileName = os.path.splitext(fname)[0] 
    fileName = "00" + fname 
    os.rename(os.path.join(path, fname), os.path.join(path, fileName)) 
    #print(fileName) 
Cuestiones relacionadas