Python "Totem" 位置(平台独立路径)
Python "Totem" Locations (Platform independent Paths)
所以我希望我的程序在没有安装 Python 的任何系统(主要是 Windows)上打包成 .exe 和 运行 后,到 在文件系统的某个地方写一个隐藏的临时文件(最好在系统树的高处,不会有意外删除的风险)作为一种知道什么时候它是第一个 运行,就像一个图腾。
……我所说的 "Totem" 就像《盗梦空间》中的银色陀螺,莱昂纳多·迪卡普里奥曾经知道自己处于什么状态(REM,或现实);因为没有更好的 word/metaphor.
例如在 Windows 命令提示符中,您可以使用 PATH 变量获取用户家庭位置等内容的默认路径:
start cmd
echo "%USERPROFILE%
... 那会 return 类似于 "C:/Users/Chris",那将是完美的,因为我会:
a. Sufficient Read/Write privileges
b. In a directory that won't be removed any time soon.
我发现最接近的是使用:
import sys
sys.path
但这会 return 一个 运行dom 路径列表,其中大部分位于 Python 默认目录中,我不想要这个 "Totem"在写入权限不足的情况下在树中太高,并提高:
IOError: [Errno 13] Permission denied:
所以我需要一个一致的默认路径,该路径将对 reading/writing 文件具有足够的权限,而不需要外部库。
我建议你使用appdirs: pip install appdirs
这将为您提供一组函数来确定以与平台无关的方式使用的正确路径。
appdirs.user_data_dir()
会给你用户数据目录
appdirs.user_config_dir()
会给你用户配置目录
appdirs.user_cache_dir()
你明白了
所有这些你都应该有足够的权限写入,但要有适当的命名,例如.YourAppName.totem你应该会发现不是随便删的。前缀为 .在大多数系统上会使文件不可见,但在 windows 上您可能还需要主动隐藏文件。
所以我希望我的程序在没有安装 Python 的任何系统(主要是 Windows)上打包成 .exe 和 运行 后,到 在文件系统的某个地方写一个隐藏的临时文件(最好在系统树的高处,不会有意外删除的风险)作为一种知道什么时候它是第一个 运行,就像一个图腾。 ……我所说的 "Totem" 就像《盗梦空间》中的银色陀螺,莱昂纳多·迪卡普里奥曾经知道自己处于什么状态(REM,或现实);因为没有更好的 word/metaphor.
例如在 Windows 命令提示符中,您可以使用 PATH 变量获取用户家庭位置等内容的默认路径:
start cmd
echo "%USERPROFILE%
... 那会 return 类似于 "C:/Users/Chris",那将是完美的,因为我会:
a. Sufficient Read/Write privileges
b. In a directory that won't be removed any time soon.
我发现最接近的是使用:
import sys
sys.path
但这会 return 一个 运行dom 路径列表,其中大部分位于 Python 默认目录中,我不想要这个 "Totem"在写入权限不足的情况下在树中太高,并提高:
IOError: [Errno 13] Permission denied:
所以我需要一个一致的默认路径,该路径将对 reading/writing 文件具有足够的权限,而不需要外部库。
我建议你使用appdirs: pip install appdirs
这将为您提供一组函数来确定以与平台无关的方式使用的正确路径。
appdirs.user_data_dir()
会给你用户数据目录appdirs.user_config_dir()
会给你用户配置目录appdirs.user_cache_dir()
你明白了
所有这些你都应该有足够的权限写入,但要有适当的命名,例如.YourAppName.totem你应该会发现不是随便删的。前缀为 .在大多数系统上会使文件不可见,但在 windows 上您可能还需要主动隐藏文件。