临时目录在程序运行期间保持不变

ump*_*sky 7 python tempdir tempdata

我需要一个临时目录,但我想完全控制它的创建和删除.

我将使用此目录来放置我想要监视新提交的git存储库,因此我需要将它们永久存储在某处.

因此我想避免/tmpdir,因为它可以被用户清除(?).这是什么最好的做法?

Fre*_*Foo 8

tempfile.mkdtemp将为您创建一个临时目录并返回其名称./tmp默认情况下(在类Unix系统上)会创建它,但是"以最安全的方式" 创建它,并且只对呼叫者的用户ID具有读/写/列表权限.

>>> d = tempfile.mktemp()
>>> with open(os.path.join(d, "secret")) as output:
...     output.write("Ha, you can't read this!")
Run Code Online (Sandbox Code Playgroud)

(顺便说一句,在具有默认设置的Unix/Linux系统上,用户不能只编辑或删除其他人的文件/tmp.)


jco*_*ado 8

我会说最好的做法是使用tempfile.mkdtemp.

如果你不想使用/tmp那么,你可以利用prefix参数:

import tempfile
tempfile.mkdtemp(prefix=<your_preferred_directory>)
Run Code Online (Sandbox Code Playgroud)

编辑:关于什么是最适合您的应用程序配置,缓存数据等的目录.如果您使用的是Linux,请查看XDG基本目录规范.


Jan*_*ila 0

https://pypi.python.org/pypi/platformdirs是一个提供跨平台user_cache_dir功能的Python包。