在Python中获取临时目录的跨平台方法
有没有跨平台的方法来获取 Python 2.6 中 temp
目录的路径?
例如,在 Linux 下为 /tmp
,而在 XP 下为 C:\Documents and settings\[user]\Application settings\Temp
。
Is there a cross-platform way of getting the path to the temp
directory in Python 2.6?
For example, under Linux that would be /tmp
, while under XP C:\Documents and settings\[user]\Application settings\Temp
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
那将是 tempfile 模块。
它具有获取临时目录的功能,并且还具有一些在其中创建临时文件和目录的快捷方式,命名或未命名。
示例:
为了完整起见,以下是它如何根据 搜索临时目录文档:
That would be the tempfile module.
It has functions to get the temporary directory, and also has some shortcuts to create temporary files and directories in it, either named or unnamed.
Example:
For completeness, here's how it searches for the temporary directory, according to the documentation:
这应该可以满足您的要求:
对于我的 Windows 机器,我得到:
在我的 Linux 机器上,我得到:
This should do what you want:
For me on my Windows box, I get:
and on my Linux box I get:
我使用:
这是因为在 MacOS 上,即 Darwin,
tempfile.gettempdir()
和os.getenv('TMPDIR')
返回一个值,例如'/ var/folders/nj/269977hs0_96bttwj2gs_jhhp48z54/T'
; 这是我并不总是想要的。I use:
This is because on MacOS, i.e. Darwin,
tempfile.gettempdir()
andos.getenv('TMPDIR')
return a value such as'/var/folders/nj/269977hs0_96bttwj2gs_jhhp48z54/T'
; it is one that I do not always want.简单的方法,基于@nosklo的评论和答案:
但是如果你想手动控制目录的创建:
最 当您完成后(出于隐私、资源、安全等考虑),您可以轻松地自行清理:
这类似于 Google Chrome 和 Linux
systemd
等应用程序的做法。 他们只是使用较短的十六进制哈希值和特定于应用程序的前缀来“宣传”他们的存在。The simplest way, based on @nosklo's comment and answer:
But if you want to manually control the creation of the directories:
That way you can easily clean up after yourself when you are done (for privacy, resources, security, whatever) with:
This is similar to what applications like Google Chrome and Linux
systemd
do. They just use a shorter hex hash and an app-specific prefix to "advertise" their presence.为什么有这么多复杂的答案?
我只用这个
Why so many complex answers?
I just use this