Python – os.rename «FileNotFoundError: [WinError 2]» [дубликат]

Я пытаюсь пакетно переименовать некоторые фотографии, и мне нужна только вторая часть, например, переименование из 1234 - Photo_Name.jpg к Photo_Name.jpg.

Это мой код:

      import os

folder = r"C:\Users\yousef\Downloads\Pictures\\"
files = os.listdir(folder)
for file_name in files:
    new_filename = file_name.split(' - ')[1]
    os.rename(file_name, new_filename)

Но я получаю эту ошибку

      File "c:\Users\yousef\Downloads\code.py", line 7, in <module>
    os.rename(file_name, new_filename)
FileNotFoundError: [WinError 2] The system cannot find the file specified: '1234 - Photo_Name.jpg' -> 'Photo_Name.jpg'

2 ответа

Он пытается переименовать файл в текущем каталоге, а не в указанной вами папке. Использовать os.path.join()для объединения каталога с именем файла.

      import os

folder = r"C:\Users\yousef\Downloads\Pictures\\"
files = os.listdir(folder)
for file_name in files:
    new_filename = file_name.split(' - ')[1]
    os.rename(os.path.join(folder, file_name), os.path.join(folder, new_filename))

Попробуйте добавить полный путь к папке к переменным исходного и целевого файла:

      import os

folder = r"C:\Users\yousef\Downloads\Pictures\\"
files = os.listdir(folder)
for file_name in files:
    new_filename = file_name.split(' - ')[1]
    os.rename(f"{folder}{file_name}", f"{folder}{new_filename}")
Другие вопросы по тегам