配置文件的跨平台寻址

dpq*_*dpq 9 python cross-platform configuration-files

简单的案例

我有一个Python程序,我打算在*nix和Windows系统上支持.该程序必须是可配置的,至少是全局的.是否有跨平台的方式来解决配置文件?

即我想写而不是

import platform
if platform.system() == "Windows":
    configFilePath = "C:\MyProgram\mainconfig.ini"
else:
    configFilePath = "/etc/myprogram/mainconfig.ini"
Run Code Online (Sandbox Code Playgroud)

一些东西

import configmagic
configFile = configmagic("myprogram", "mainconfig")
Run Code Online (Sandbox Code Playgroud)


一个稍微高级的案例

同样可以应用于用户特定的配置吗?即将配置保存~user/.myprogram/在Unix下,以及HKEY_LOCAL_USERWindows下的注册表部分?

Ned*_*der 6

Python 将允许在 Windows 上使用正斜杠路径,并且也os.path.expanduser适用于 Windows,因此您可以使用以下方法获取特定于用户的文件路径:

config_file = os.path.expanduser("~/foo.ini")
Run Code Online (Sandbox Code Playgroud)

如果您想在用户的主目录中找到 .ini。我不确定如何统一基于文件的 .ini 和注册表设置。