2013-07-23 3 views
-2

Я пишу небольшой скрипт, который будет изменять имена каждого первенствует файл, расположенный в каталоге:Rename первенствует файл с os.rename() Python

[...] 
for file_ in os.listdir(path): 
    if 'Analytics Android' in file_: 
     os.rename(file_, 'Android Orders.xlsx') 

Но, я получаю сообщение об ошибке: [Error 2] The system cannot find the file specified. «не должна t функция rename изменит имя на второй аргумент?

+0

Вы дали функцию неправильно дорожка. Вот что означает ошибка. – sashoalm

+1

Ваша следующая проблема будет заключаться в том, что вы пытаетесь дать всем своим новым файлам одинаковое имя. – tdelaney

ответ

3

os.listdir не дают абсолютные пути, но относительные пути к данному пути, чтобы перечислить, так что вам все равно придется создать полный путь:

for file_ in os.listdir(path): 
    if 'Analytics Android' in file_: 
     os.rename(os.path.join(path, file_), os.path.join(path, 'Android Orders.xlsx')) 
+0

Вам также нужно добавить путь к «Android Orders.xlsx» или он будет перемещен в ваш текущий рабочий каталог. – tdelaney

+0

@tdelaney Хороший улов - мой плохой. – orlp

2

Вы должны указать абсолютный путь к файлу.

>>> os.rename(os.path.join(path, file_), 'Android Orders.xlsx') 
Смежные вопросы