python - 使用 try...except 捕获特定异常

标签 python python-2.7

我有一些代码可以重命名一大堆文件,并使用 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/

相关文章:

Python 3.7 : Applying the proxy to all parts of pip installation, 维护代理变量失败

python - 使用 python 填写文本类型的输入并按提交

python-3.x - Tkinter 在 Python 3 上找到但在 Python2.7 上找不到

arrays - 使用 Pandas 数据框进行数据操作

python - python 调试器如何工作?

python - 为什么 df[[2,3,4]][2 :4] works and df[[2:4]][2:4] does not in Python

python - 在 Python 中运行 Fortran 命令行程序

python - Tensorflow:如何将 1 阶张量转换为 2 阶张量

python - 带有模型的 Django QuerySet

python-2.7 - 在scikit中使用Train Test Split时获取索引