tempfile目录最终是否被系统清除

时间:2013-08-15 08:53:15

标签: python temporary-files

我正在使用脚本进行一些处理,并且当前正在使用固定目录来执行此文件操作。我想使用tempfile模块的tempdir以更优雅的方式执行此操作。

使用以下代码:

import os
import tempfile

#define the location of 'mytemp' parent folder relative to the system temp
sysTemp = tempfile.gettempdir()
myTemp = os.path.join(sysTemp,'mytemp')

#You must make sure myTemp exists
if not os.path.exists(myTemp):
    os.makedirs(myTemp)

在我的Mac上它创建了一个文件夹:/ var / folders / nn / zyl78zb ..... 在PC上它创建一个(我的用户目录中的隐藏文件夹。

从tempfile模块文档我明白,如果你创建一个tempdir,你必须自己清除它。有时我想去查看中间文件,所以我不想自动删除它们。 如果我离开它们,操作系统最终会清理这些目录(重启后等)?如果我不直接从脚本中清除它们,下面的运行可能会得到一个不同的tempdir。这最终可能导致大量未使用和不需要的文件。

我已经搜索了tempfile文档,但似乎无法找到答案。这可能是一个操作系统问题,但有临时文件模块经验的人应该知道。

1 个答案:

答案 0 :(得分:5)

例如在Linux上,/tmp通常在启动时被清除。但请记住,许多服务器可能连续运行多年,因此最好不要指望重新启动。然后在Windows上,每当运行磁盘清理时都会清除临时值,如果不是的话。您的程序负责删除存在的临时文件;最好的方法是在打开后立即取消链接(在Unixen上);无论你做什么,都可以使用tempfile模块中提供的最佳机制。