<p>使用</p>
<pre><code>with open(pathf, "r") as r:
fdata = r.read().splitlines()
# as soon as you leave the with-scope, the file is autoclosed, even if exceptions happen.
</code></pre>
<p>它不仅涉及自动关闭,而且还涉及异常情况下的正确关闭。你知道吗</p>
<p>Doku:<a href="https://docs.python.org/3/tutorial/inputoutput.html#methods-of-file-objects" rel="noreferrer">methods of file objects</a></p>
<blockquote>
<p>It is good practice to use the <code>with</code> keyword when dealing with file
objects. The advantage is that the file is properly closed after its
suite finishes, even if an exception is raised at some point. Using
<code>with</code> is also much shorter than writing equivalent <code>try-finally</code> blocks: </p>
<p>If you’re not using the <code>with</code> keyword, then you should call <code>f.close()</code>
to close the file and immediately free up any system resources used by
it.<br/>
If you don’t explicitly close a file, Python’s garbage collector
will eventually destroy the object and close the open file for you,
but the file may stay open for a while. Another risk is that different
Python implementations will do this clean-up at different times.</p>
</blockquote>