Python 3.4:不会自动删除临时文件

问题描述:

如果您使用的是tempfile库,那么您可能已经体验到即使程序已经完成也不会自动删除临时文件的情况。这对于多次使用的程序来说非常重要,因为一旦临时文件堆积起来,其目录就会变得混乱。Python 3.4:不会自动删除临时文件

这是Q & A.因此,这是我的解决方案。

显然,对于tempfile.TemporaryFile默认设置不会自动删除临时文件,但添加在您的tempfile.NamedTemporaryFile作品前缀:

with tempfile.NamedTemporaryFile(prefix="anything_", 
             dir=os.getcwd()) as tempf: 

      '''put something''' 
      tempf.seek(0) 

注:

  • os.getcwd()是让文件的当前目录。
  • 临时文件会anything_ + (random values)(即anything_23mem

希望它帮助。

+1

问题是什么? –

+0

这听起来像是Python人员的错误报告,而不是Stack Overflow问题。你的问题和解决方案都没有任何意义。我从来不需要提供'prefix'来触发''with'block的退出自动删除,也没有失败过自动删除(除了'ctypes'或扩展实际上让解释器绕过清理的情况下崩溃的情况)。如果这可以工作,那么很可能将工作目录明确用作存储位置(可能是因为TEMP存储目录的权限有问题),而与“prefix”无关。 – ShadowRanger

+0

@ShadowRanger我怀疑我的'TEMP'文件夹中的临时文件自动删除不起作用。所以我去了那个目录(在运行我的脚本之后),我仍然在那里看到它们。接下来我确保我可以很容易地监控它,让临时文件的'dir'与脚本目录相同。另外,我正在使用PC的管理员。 所以我试着运行脚本,它的工作,但临时文件仍然存在。这就是为什么我会分享我的“解决方案”,如果有谁会有经验的人。 – Kucosyn