在Windows上存储python应用程序配置文件的位置

在Windows上存储python应用程序配置文件的位置,python,windows,Python,Windows,我有一个python程序,必须在Windows和Linux上运行。我通常将一些配置选项存储在程序目录的子目录中的文件中 对于Windows,我将其转换为exe并为其创建了安装程序。现在我遇到了处理配置文件的问题 保存配置文件的最佳位置是什么?我已经读到Windowsos.environ['APPDATA']+'myAppName'是必须使用的路径。对吗?这是标准的吗?它是否能在所有版本的Windows中工作,至少从XP开始(至少在英语和西班牙语中) PD:我对使用ConfigParser不感兴趣

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

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

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


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

在Linux上,通常将配置文件存储在用户主目录中,例如
~/.myprogramrc
。在windows Vista及更高版本上,用户也有一个主目录(/users/username),建议将您的设置存储在子文件夹(/users/useranem/myprogram)中。将设置存储在应用程序文件夹中将生成UAC警告


在Windows XP上,用户没有主文件夹。有些程序选择将配置放在“我的文档”文件夹中,我想这是一个很好的地方。

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

现在,您可能应该使用类库之类的工具来找到一个好的路径来存储配置


在大多数Unice下,只需在主目录中存储一个文件(最好是带有点前缀的文件)。在OSX下,您希望在用户的库文件夹中为应用程序创建一个目录,并将文件存储在那里。在Windows下,APPDATA是为应用程序构建目录的好地方。它应该适用于所有Windows本地化,而且它似乎在Windows XP中也可用。

当您明确要求Windows内容时,我已经为您确定了标题。希望没问题。您应该使用
os.path.join(os.environ['APPDATA'],'myAppName')
来构建路径('$APPDATA/myAppName')。另请参见软件工程。在XP上,还有一种主文件夹。它是
我的文档
文件夹的父文件夹。但不建议在那里弄痛东西;相反,应该使用
APPDATA
方法。感谢您的帮助。正如罗丹所说,UAC在将文件写入“程序文件”时是一个问题@glglglgl我没有XP机器要测试,你知道在这个操作系统中,
APPDATA
的路径是什么吗?这里是
C:\Dokumente und Einstellungen\myusername\Anwendungsdaten
,在英文版下,可能是
C:\Documents and Settings\myusername\Appdata
或类似版本。在XP上,有一个名为
HOMEPATH
的环境变量,其中包含当前用户主文件夹的路径。正如在对接受答案的注释中所述,它不是使用
~/.myprogramrc
,您应该使用
$XDG\u CONFIG\u HOME/myprogram/myprogramrc
,它通常解析为
~/.CONFIG/myprogram/myprogramrc
。谢谢您的建议。所以你说无论使用什么版本的Windows(XP、Vista、7…32位、64位…英语、西班牙语),使用APPDATA是否安全?似乎建议使用
~/.local
下的目录来存储应用程序数据。@glglglgl对于应用程序数据,您是正确的。但是OP询问用户可配置的应用程序设置,如果未设置
$XDG\u config\u HOME
,则应使用
~/.config
。如果您遵守XDG基本目录规范,那就是。