2013-08-19 1 views
0

мне нужно переименовать все файлы в 'DSC0 + num', поэтому окончательное имя файла должно быть (например) 'DSC02015'Невозможно переименовать все файлы в директории

Покушение код:

import os 

path = "C:\\images" 
num = 2000 
i=0 
files = os.listdir(path) 
for x in files: 
    old = files[i] 
    new = 'DSC0%d' %(num) 
    os.rename (files[i],new) 
    num +=1 
    i +=1 

I 'm получение этой ошибки:

Traceback <most recent call last): 
File "rename.py", line 10, in <module> 
    os.rename (files[i],new) 
WindowsError: [Error 2] The system cannot find the file specified 

ответ

2

Сначала вы должны сначала обратиться в нужный каталог. Так поставить это перед for -loop:

os.chdir(path) 

Если ваш питон скрипт находится в другом каталоге, который будет рабочим каталогом и поскольку у вас есть только имена файлов, а не абсолютные пути к файлам, файлы не могут разрешается в этом рабочем каталоге. Таким образом, переход к нему решает вашу проблему.

В качестве побочного примечания ваша петля может быть немного проще. Это должно сделать то же самое:

for x in files: 
    new = 'DSC0%d' %(num) 
    os.rename (x, new) 
    num +=1 
0

Проблема заключается в том, что вы предоставляете функции rename относительный путь, но вы, вероятно, выполнить код из другого места. Вы можете изменить текущую папку с os.chdir в качестве предыдущего ответа. или, если вы хотите, чтобы остаться в исходной папке, вы можете поставить полный путь таким образом:

вам нужно изменить строку:

os.rename(files[i],new) 

быть:

os.rename(os.path.join(path,files[i]),os.path.join(path,new)) 

 Смежные вопросы

  • Нет связанных вопросов^_^