Python os.rename, удаление и отлов ошибок - PullRequest
0 голосов
/ 06 апреля 2020

Сценарий получает имена файлов из каталога, разделяет имя файла и расширение. Персонажи) и. затем удаляются из имени файла и, таким образом, имя файла переименовывается. Если возникает ошибка, которая указывает на наличие дублированного именованного файла из этого каталога, он обрабатывается блоком исключений с помощью os.remove. Печать выходных данных до блока try-исключением дает желаемые результаты, но выполнение блока не дает вывода, как и печать после блока.

Почему блок try-исключения не работает должным образом?

import os
import re

os.chdir('E:\D\Music\Music V')

for f in os.listdir(): 
    fileName, fileExt =  os.path.splitext(f) 
    fileName = re.sub('[).]','',fileName)
    newName = '{}{}'.format(fileName, fileExt)

    #print(newName)

try:
    os.rename(f, newName)
except WindowsError:
    os.remove(newName)
    os.rename(f, newName)

    #print(newName)

1 Ответ

0 голосов
/ 06 апреля 2020

Так что это сработало для меня:

import os
import re

os.chdir('E:\D\Music\Music V')

for f in os.listdir(): 
    fileName, fileExt =  os.path.splitext(f) 
    fileName = re.sub('[).],'',filename)
    newName = '{}{}'.format(fileName, fileExt)

    #print(newName)

    try:
        os.rename(f, newName)
    except WindowsError:
        os.remove(newName)
        os.rename(f, newName)

        #print(newName)

Обратите внимание, что дополнительный отступ для try:. Без этого это не часть той же итерации в for f. Это было так просто? Надеюсь =)

...