Борется с функцией os.rename ()

TrojanHorse спросил: 12 мая 2018 в 03:59 в: python

Я пытаюсь удалить подчеркивания для каждого файла в папке с загрузкой в ​​python 3, но моя программа заканчивается ошибкой

Вот мой код:

import shutil, os, re
for folder, downloads, songs in os.walk("C:/Users/TheTrojanHorse/Downloads"):
    print("the current folder is",folder)
    for song in songs:
        temp = song
        temp = (re.sub('[_]', ' ',temp))
        os.rename(song,temp)

Это ошибка:

os.rename(song,temp)
FileNotFoundError: [WinError 2] The system cannot find the file specified

1 ответ

Есть решение
NPE ответил: 12 мая 2018 в 04:06

Вам нужно указать полный путь к song (и, скорее всего, temp), поскольку в противном случае операционная система будет искать файл в текущем каталоге, а не в :

os.rename(os.path.join(folder, song), os.path.join(folder, temp))
TrojanHorse ответил: 12 мая 2018 в 04:14
Я подключил это, но теперь это произошло: FileExistsError: [WinError 183] Невозможно создать файл, когда этот файл уже существует. Я не понимаю, как os.rename () может вызвать эту ошибку @NPE
NPE ответил: 12 мая 2018 в 04:18
@TrojanHorse: Исключение - это именно то, что он говорит о жесте. Такое поведение даже указано в документации ("В Windows, если dst уже существует, OSError будет поднят ..." - docs.python.org/2/library/os.html#os.rename)
Mohan Prajapati ответил: 19 июня 2018 в 07:22
Пожалуйста, следуйте этому сообщению stackoverflow.com/questions/51296315/renaming-images-in-folder/... . полный путь к файлу - это только способ переименования файла.