3

我正在使用脚本进行一些处理,目前正在使用固定目录来执行此文件操作。我想使用 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 文档,但似乎找不到答案。这可能更像是一个操作系统问题,但有 tempfile 模块经验的人应该知道。

4

1 回答 1

5

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

于 2013-08-15T08:58:00.253 回答