我有一些代码要重命名一大堆文件,然后使用os.rename()
将它们移动到新目录。它相当简单,没什么华而不实的。它工作直到我批量重叠并且有重复的文件,这引发了WindowsError
。由于代码在所有其他方面都有效,我做了
try:
os.rename(...)
except WindowsError:
print "Duplicate file {}".format(fileName)
这很好,除了它意味着所有WindowsError
来自重复文件。结果是,当我的脚本的另一个方面破裂时,它基本上默默地失败了。
如何使用try...except
来捕获特定的例外情况?如果不可能,会有什么变通方法?
答案 0 :(得分:5)
“errno
值将 winerror
值映射到相应的errno.h
值。”
因此,您应该能够使用errno
来区分不同的Windows错误。
示例:
try:
fp = open("nother")
except IOError as e:
print e.errno
print e