Python“图腾”位置(独立于平台的路径)

2024-06-13 23:25:49 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想让我的程序,当打包成一个.exe,在任何没有安装Python的系统(主要是Windows)上运行时,写一个隐藏的临时文件,在文件系统的某个地方(最好是在系统树的高层,不会有被意外删除的风险),以此来知道它是什么时候第一次运行的,就像图腾。 ... 我所说的“图腾”就像是《盗梦空间》里的银色德雷德尔,莱昂纳多·迪卡普里奥曾经知道他处于什么状态(REM,或现实);因为没有更好的词汇/隐喻。你知道吗

例如,在Windows命令提示符中,可以使用路径变量来获取默认路径,例如用户的主位置:

start cmd
echo "%USERPROFILE%

。。。这将返回类似“C:/Users/Chris”的内容,这将是完美的,因为我会:

a. Sufficient Read/Write privileges
b. In a directory that won't be removed any time soon.

我发现最接近的方法是:

import sys
sys.path

但这将返回一个随机路径列表,其中大部分位于Python默认目录中,我不希望这个“图腾”在树中的位置过高,以防写权限不足,并引发:

IOError: [Errno 13] Permission denied:

因此,我需要一个一致的默认路径,它将有足够的权限读取/写入文件,而不需要外部库。你知道吗


Tags: 路径程序权限windows状态系统地方sys
1条回答
网友
1楼 · 发布于 2024-06-13 23:25:49

我建议您使用appdirs:pip install appdirs

这将为您提供一组函数,以确定以平台无关的方式使用的正确路径。你知道吗

  • appdirs.user_data_dir()将为您提供用户数据目录
  • appdirs.user_config_dir()将为您提供用户配置目录
  • appdirs.user_cache_dir()你明白了

所有这些文件都应有足够的权限写入,但要有适当的命名,例如。你的appname.totem您应该发现它不是随机删除的。前缀为。在大多数系统上,将使文件不可见,但在windows上,您可能还需要主动隐藏文件。你知道吗

相关问题 更多 >