与IOError相关的Python错误号是否稳定?

时间:2012-09-05 14:08:54

标签: python api exception error-handling errno

我想移动一个文件,但是在找不到的情况下我应该忽略它。在所有其他情况下,应该传播异常。我有以下Python代码:

try:
    shutil.move(old_path, new_path)
except IOError as e:
    if e.errno != 2: raise e

errno == 2是具有“无此文件或目录”描述的那个。我想知道这在Python版本和平台上是否稳定等等。

1 个答案:

答案 0 :(得分:7)

最好使用errno模块中的值,而不是对值2进行硬编码:

try:
    shutil.move(old_path, new_path)
except IOError as e:
    if e.errno != errno.ENOENT: raise e

这使得您的代码在整数错误值发生变化时不太可能中断(尽管不太可能发生)。