我有一些代码可以重命名一大堆文件,并使用 os.rename()
将它们移动到新目录。它相当简单,没有什么华而不实的。它一直有效,直到我有一些批处理重叠并且有重复的文件,这引发了 WindowsError
。由于代码在所有其他方面都有效,所以我做到了
try:
os.rename(...)
except WindowsError:
print "Duplicate file {}".format(fileName)
这工作正常,除了它暗示所有 WindowsError
都来自重复文件。结果是,当我的脚本的另一个方面出现问题时,它基本上无声无息地失败了。
我如何使用 try...except
来只捕获特定的异常?如果不可能,有什么解决方法?
最佳答案
根据documentation :
“errno
值将 winerror
值映射到相应的 errno.h
值。”
正因为如此,您应该能够通过使用 errno
来区分不同的 Windows 错误。
例子:
try:
fp = open("nother")
except IOError as e:
print e.errno
print e
关于python - 使用 try...except 捕获特定异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29977813/