擅长:python、mysql、java
<p>我强烈建议使用这种语法,而不是嵌套try-and-with语句(如果内部代码引发了一个IOError,则会遗漏这个IOError)。它减少了一个嵌套,并确保IOError是由于open而发生的。这样,您就没有机会捕捉到不需要的异常,而且您有更多的控制权。</p>
<pre><code>f = None
try:
f = open('file', 'w+')
except IOError:
print("Couldn't open the file")
else:
f.write('You are opened')
finally:
if f: f.close()
</code></pre>
<p>没有真正的Python式的方法来做它作为一个一行,这通常是一个好主意,避免长的一行。</p>