为什么我的 XP 机器上的临时文件使用 DOS 8.3 目录名称?

发布于 2024-09-26 15:11:34 字数 203 浏览 4 评论 0原文

>>> import tempfile
>>> tempfile.mkstemp()
(3, 'c:\\docume~1\\k0811260\\locals~1\\temp\\tmpk6tpd3')

它有效,但看起来有点奇怪。并且实际的临时文件名超过8个字母。

为什么它不使用长文件名呢?

>>> import tempfile
>>> tempfile.mkstemp()
(3, 'c:\\docume~1\\k0811260\\locals~1\\temp\\tmpk6tpd3')

It works, but looks a bit strange. and the actual temporary file name is more than 8 letters.

Why doesn't it use long file names instead?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

您的好友蓝忘机已上羡 2024-10-03 15:11:34

mkstemp 使用环境变量 TMPDIR、TEMP或 TMP(设置的第一个)来确定临时文件的放置位置。其中之一可能在您的系统上设置为 c:\docume~1\k0811260\locals~1\temp。 在命令窗口(“DOS 框”)中发出

echo %%tmp%%

等命令以进行确定。

事实上,这是一件好事,因为当目录名包含空格时,由于引用问题,一些简单的模块/程序(例如,那些调用外部操作系统命令的模块/程序)可能会感到困惑。

mkstemp uses the environment variables TMPDIR, TEMP or TMP (the first one that is set) to determine where to put your temporary file. One of these is probably set to c:\docume~1\k0811260\locals~1\temp on your system. Issue

echo %%tmp%%

etc. in a command window ("DOS box") to find out for sure.

Which, in fact, is a good thing because some naïve modules/programs (e.g., those that call external OS commands) may get confused when a directory name contains a space, due to quoting issues.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文