0

该脚本从目录中获取文件名,拆分文件名和扩展名。字符 ) 和 . 然后从文件名中删除,因此文件名被重命名。如果发生错误,表明该目录中存在重复的命名文件,则会由异常块使用 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)
4

1 回答 1

0

所以这对我有用:

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. 就这么简单吗?希望 =)

于 2020-04-06T14:09:16.240 回答