Python" Totem"地点(平台无关路径)

时间:2016-06-10 05:50:01

标签: python windows caching path default

所以我想要我的程序,当打包成.exe并在任何没有安装Python的系统(主要是Windows)上运行时, 写一个隐藏的临时文件 文件系统中的某个位置(最好在系统树中高处,不会有意外删除的风险)作为一种了解它何时首次运行的方式,如图腾。 ......我的意思是" Totem"就像来自Inception的银色dreidel,莱昂纳多迪卡普里奥曾经知道他所处的状态(REM,或Reality);缺乏更好的词/隐喻。

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

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默认目录中,我不想要这个" Totem"如果写权限不足,树中的值太高,并且提高:

IOError: [Errno 13] Permission denied:

所以我需要一个一致的默认路径,它有足够的权限来读/写文件,而不需要外部库。

1 个答案:

答案 0 :(得分:2)

我建议你使用appdirs:pip install appdirs

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

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

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