Python os.rename, 移除并捕获错误

Python os.rename, remove and error catching

脚本从目录中获取文件名,拆分文件名和扩展名。字符)和。然后从文件名中删除,因此文件名被重命名。如果发生错误表明该目录中存在重复的命名文件,则使用 os.remove 的异常块将处理该错误。在 try-except 块之前打印输出会产生理想的结果,但 运行 该块不会像在该块之后打印一样产生任何输出。

为什么 try-except 块没有按预期运行?

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)

所以这对我有用:

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 中同一迭代的一部分。有这么简单吗?希望 =)