【发布时间】:2015-10-30 07:17:53
【问题描述】:
我试图在 Python 3 中使用tempfile.NamedTemporaryFile。我发现如果我想通过传递新文件名来调用使用subprocess.call 或类似的任何其他进程,我必须使用delete = false,然后再使用使用os.unlink 自己手动删除文件。我认为在允许另一个进程打开它之前我必须close() 文件(在我的情况下,调用编译器来编译从 Python 创建的源文件),显然该文件在关闭时被删除。
我想知道,当 Python 已经提供了tempfile.TemporaryFile 来生成没有名称的临时文件时,如果不是为了让其他进程能够访问它们,那么 named 临时文件有什么用?
在我看来,默认应该是不在文件关闭时删除创建的文件,并将删除临时文件的责任推给用户,不是吗?事实上,delete 参数本身似乎没有意义,因为如果文件无论如何都会被删除,那我们为什么需要它的名字,所以NamedTemporaryFile 永远不应该删除......
【问题讨论】: