擅长:python、mysql、java
<blockquote>
<p>The best way is copying the file and letting python delete the temporary one when it's closed:</p>
</blockquote>
<p>我觉得你最好用<code>os.link</code>:</p>
<pre><code>with tempfile.NamedTemporaryFile(dir=os.path.dirname(actual_name)) as f:
f.write(pdf)
os.link(f.name, actual_name)
</code></pre>
<p>它使用<code>os.link</code>创建到临时文件的硬链接,该文件
将在自动删除临时文件后保持。</p>
<p>此代码有几个优点:</p>
<ul>
<li>我们使用<code>tempfile</code>对象作为上下文管理器,所以我们不使用
需要担心是否要显式地关闭它。</li>
<li>既然我们要创建一个指向文件的硬链接,而不是复制它,
我们不需要担心由于
复制大文件。</li>
<li>因为我们没有复制数据,所以不需要调用<code>f.flush()</code>。
文件关闭后将自动刷新。</li>
</ul>