尝试使用try ...来捕获特定的异常

时间:2015-04-30 21:11:50

标签: python python-2.7

我有一些代码要重命名一大堆文件,然后使用os.rename()将它们移动到新目录。它相当简单,没什么华而不实的。它工作直到我批量重叠并且有重复的文件,这引发了WindowsError。由于代码在所有其他方面都有效,我做了

try:
    os.rename(...)
except WindowsError:
    print "Duplicate file {}".format(fileName)

这很好,除了它意味着所有WindowsError来自重复文件。结果是,当我的脚本的另一个方面破裂时,它基本上默默地​​失败了。

如何使用try...except来捕获特定的例外情况?如果不可能,会有什么变通方法?

1 个答案:

答案 0 :(得分:5)

根据documentation

errno值将 winerror 值映射到相应的errno.h值。”

因此,您应该能够使用errno来区分不同的Windows错误。

示例:

try:
    fp = open("nother")
except IOError as e:
    print e.errno
    print e