我在这个论坛中遇到了一些示例,其中通过测试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.'
你如何具体检查这个和类似的其他错误?
答案 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时处理竞争条件的示例:
(+)