[英]with operator inside try-except
我有以下代码:
with open("a.txt") as f:
data = f.read()
# operation on data
如果我对数据的操作出现任何错误,将关闭文件a.txt
。 我想知道,如果文件a.txt
不存在怎么办。 我的代码应该是:
try:
with open("a.txt") as f:
data = f.read()
# operation on data
except IOError:
print "No such File"
如果该文件不存在,除非您使用try/except
,否则将引发错误;如果该文件不存在,则不会打开任何内容,因此不会关闭任何内容。 如果要在文件不存在时捕获,则需要使用try。
如果要根据错误类型输出消息,则可以检查errno:
try:
with open("a.txt") as f:
data = f.read()
except IOError as e:
if e.errno == 2:
print("No such File")
如果要创建文件(如果文件不存在或从文件中读取),则可以使用a+
:
with open("a.txt","a+") as f:
您可以使用os.path
来验证文件路径的存在,例如:
if os.path.exists('data.txt'):
with open('data.txt', 'r') as data:
# do stuff with file here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.