我觉得很奇怪
with open(file, 'r')
可以报告
FileNotFoundError: [Errno 2]
但是我无法以某种方式抓住它并继续。我在这里遗漏了什么或是否真的希望你在使用open()之前使用isfile()或类似的东西?
答案 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+)