如何检查目录是否是Python中的临时目录

时间:2012-11-05 13:23:42

标签: python directory-structure temporary-directory

我知道如何使用tempfile在Python中创建临时目录。

我有一个封装用户环境的类。我还有一个单元测试,它创建一个临时的虚拟用户环境,并用一些用于测试的文件填充它。完成此操作后,我想清理所有内容,从而删除该虚拟用户目录中的所有内容(使用shutils.rmtree

我有一个虚拟类包装原始的一个,它阻止它获取真正的用户目录并返回虚拟。虽然我担心有人可能会忘记这个并且可能会改变它或完全删除包装类。这可能会起作用,开发人员最终会从他/她的主目录中删除所有内容。虽然这可能会教给他/她一个很好的教训,但这是不可接受的。

我可以检查'/ tmp /'是否位于用户主页的路径开头,这样我就知道删除是安全的,但这对Windows不起作用。由于tempfile已经知道如何创建目录,因此它也能够判断目录是否在 temporal 区域中。 虽然我不知道该怎么做。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这是tempfile.gettempdir()的用途。

但是,您可能需要重新考虑如何表示'主目录'是临时的仅测试设置。您可以添加额外的文件(.this-is-a-test-homedir或类似文件),使用明确的“临时”用户名。

或者,更好的是,完全删除虚拟包装并让测试在运行测试之前创建临时用户目录,然后在拆除测试时进行清理。