<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Python - 分类 - 吕海峰的博客</title>
        <link>https://www.lvhaifeng.com/categories/python.html</link>
        <description>Python - 分类 - 吕海峰的博客</description>
        <generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>haifeng.lvlv@outlook.com (吕海峰)</managingEditor>
            <webMaster>haifeng.lvlv@outlook.com (吕海峰)</webMaster><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Fri, 24 Apr 2026 15:51:02 &#43;0800</lastBuildDate><atom:link href="https://www.lvhaifeng.com/categories/python.html" rel="self" type="application/rss+xml" /><item>
    <title>深入理解Python的With-as机制</title>
    <link>https://www.lvhaifeng.com/20260424/pytonwithas.html</link>
    <pubDate>Fri, 24 Apr 2026 15:51:02 &#43;0800</pubDate>
    <author>haifeng.lvlv@outlook.com (吕海峰)</author>
    <guid>https://www.lvhaifeng.com/20260424/pytonwithas.html</guid>
    <description><![CDATA[<h3 id="with-as-用法">With-as 用法</h3>
<p>我们先看一下例子，当我们需要打开一个文件的时，比如：txt等，一般经常会这么操作：</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-python">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="k">try</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">f</span> <span class="o">=</span> <span class="n">file</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;test.txt&#39;</span><span class="p">,</span><span class="s1">&#39;rw&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="n">To</span> <span class="n">Do</span>
</span></span><span class="line"><span class="cl"><span class="k">except</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">To</span> <span class="n">Do</span>
</span></span><span class="line"><span class="cl"><span class="k">finally</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></span></span></code></pre></div></div>
<p>这是错误，因为file.open是否打开文件是不确定，而在出现异常的时候你却关闭了已经打开的文件。文件没有打开怎么能直接关闭呢？你可以按照下面的解决方法来解决上述出现的问题。</p>]]></description>
</item>
</channel>
</rss>
