Windows上python应用程序的配置文件存放在哪里

jea*_*anc 6 python windows

我有一个必须在 Windows 和 Linux 上运行的 python 程序。我通常将一些配置选项存储在程序目录的子目录中的文件中。

对于 Windows,我将其转换为 exe 并为其创建了一个安装程序。现在我有处理配置文件的问题。

保存配置文件的最佳位置是什么?我已经读过对于 Windowsos.environ['APPDATA']+'myAppName'是必须使用的路径。这是正确的吗?它是标准的吗?它是否可以在所有版本的 Windows 中运行,至少从 XP 开始(至少在英语和西班牙语中)?

PD:我对使用 ConfigParser 不感兴趣。配置文件是我自己的格式,我有从中读取/写入的工作代码。

djc*_*djc 6

将设置存储在用户目录中通常是个好主意。

这些天,您可能应该使用类似appdirs库的东西来找到一个好的路径来存储您的配置。

在大多数 Unices 下,只需在主目录中存储一个(最好是点前缀的)文件。在 OS X 下,您需要在用户的 Library 文件夹中为您的应用程序创建一个目录,并将您的文件存储在那里。在 Windows 下,APPDATA 是为您的应用程序构建目录的好地方。它应该适用于所有 Windows 本地化,而且看起来它也适用于 Windows XP。

  • @glglgl 对于应用程序_data_,你是对的。但是OP正在询问用户可配置的应用程序_settings_,如果未设置`$XDG_CONFIG_HOME`,您应该使用`~/.config`。也就是说,如果您遵守 XDG 基本目录规范。 (2认同)

bit*_*ant 6

平台目录

现在有一个更好的解决方案......比推测每个平台上最好的解决方案更好,比可能定义也可能未定义的环境变量更好,甚至比appdirs:( platformdirsGitHub ,PyPI Snyk)更好。

import platformdirs
appname = 'OurGreatApp'
print(f"User config files should be stored in {platformdirs.user_config_dir(appname)}")
Run Code Online (Sandbox Code Playgroud)