2011-11-16 58 views
9

Sto tentando di rinominare tutte le immagini in una directory. Ho bisogno di aggiungere un paio di zero pre-in sospeso al nome del file. Sono nuovo di Python e ho scritto il seguente script.Impossibile risolvere WindowsError: [Errore 2] Impossibile trovare il file specificato

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 linea di stampa commentata era solo per verificare che ero sulla strada giusta. Quando eseguo questo ottengo il seguente errore e non riesco a risolverlo.

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

Qualsiasi aiuto è molto apprezzato. Thnx.

risposta

15

È necessario passare il percorso assoluto a os.rename. In questo momento stai solo passando il nome del file stesso. Non sta guardando nel posto giusto. Utilizzare os.path.join.

Prova questo:

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) 
Problemi correlati