python - 专门处理文件存在异常

时间:2013-12-26 20:01:28

标签: python exception ioerror

我在这个论坛中遇到了一些示例,其中通过测试errno(或OSError这些天的IOError值来处理文件和目录的特定错误。例如,这里有一些讨论 - Python's "open()" throws different errors for "file not found" - how to handle both exceptions?。但是,我认为,这不是正确的方法。毕竟,FileExistsError专门存在,以避免担心errno

以下尝试无效,因为我收到了令牌FileExistsError的错误。

try:
    os.mkdir(folderPath)
except FileExistsError:
    print 'Directory not created.'

你如何具体检查这个和类似的其他错误?

2 个答案:

答案 0 :(得分:28)

根据代码print ...,您似乎正在使用Python 2.x. Python 3.3中添加了FileExistsError;您无法使用FileExistsError

使用errno.EEXIST

import os
import errno

try:
    os.mkdir(folderPath)
except OSError as e:
    if e.errno == errno.EEXIST:
        print('Directory not created.')
    else:
        raise

答案 1 :(得分:0)

下面是在尝试atomically overwrite an existing symlink时处理竞争条件的示例:

(+)