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
中同一迭代的一部分。有这么简单吗?希望 =)
脚本从目录中获取文件名,拆分文件名和扩展名。字符)和。然后从文件名中删除,因此文件名被重命名。如果发生错误表明该目录中存在重复的命名文件,则使用 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
中同一迭代的一部分。有这么简单吗?希望 =)