Python - open()除了(FileNotFoundError)?

时间:2016-11-16 19:44:51

标签: python python-3.x

我觉得很奇怪

with open(file, 'r')

可以报告

FileNotFoundError: [Errno 2]

但是我无法以某种方式抓住它并继续。我在这里遗漏了什么或是否真的希望你在使用open()之前使用isfile()或类似的东西?

3 个答案:

答案 0 :(得分:2)

使用try/except来处理异常

 try:
     with open( "a.txt" ) as f :
         print(f.readlines())
 except Exception:
     print('not found')
     #continue if file not found

答案 1 :(得分:0)

from __future__ import with_statement

try:
    with open(file) as f :
        print f.readlines()
except EnvironmentError: # parent of IOError, OSError *and* WindowsError where available
    print('oops')

如果您希望对公开呼叫与工作代码中的错误进行不同的处理,则可以执行以下操作:

try:
    f = open(file)
except IOError:
    print('error')
else:
    with f:
        print(f.readlines())

答案 2 :(得分:0)

如果您收到FileNotFound错误,则问题很可能是文件名或文件路径不正确。如果您尝试读取并写入尚未存在的文件,请将模式从'r'更改为'w+'。对于Unix用户来说,在文件之前写出完整路径也可能有帮助:

'/Users/paths/file'

或者更好的是,我们使用os.path,以便您的路径可以在其他操作系统上运行。

import os
with open(os.path.join('/', 'Users', 'paths', 'file'), 'w+)