将用户configuration文件放在窗口中的位置

我正在编写一个python库,它有一个可由库的用户编辑的每个用户的configuration文件。 库也生成日志文件。 在* nix上,标准似乎是将它们转储到$ HOME / .library_name中。

但是,我不知道如何处理Windows用户。 我在转换到Linux之前使用了Windows多年,似乎应用程序倾向于依靠GUIconfiguration(我宁愿不开发)或B)在registry中转储configuration数据(这是令人讨厌的开发和不能用* nixconfiguration文件移植)

我目前正在将文件转储到Windows上的$ HOME / .library_name中,但这在Windows上感觉非常不自然。
我已经考虑将其放入%APPDATA%,应用程序数据倾向于生活,但这有它自己的问题。 我最担心的是,外地用户甚至不知道该目录是在哪里(不像%HOME /〜),用户可编辑的configuration文件似乎并不正常。

什么是Windows上的每个用户可编辑的configuration文件的标准位置?

Solutions Collecting From Web of "将用户configuration文件放在窗口中的位置"

%APPDATA%是这些的正确位置(可能在您的库的子目录中)。 不幸的是,移植到Windows上的相当数量的* nix应用程序并不尊重这些应用程序,最终导致.gem,.ssh,.VirtualBox等文件夹混乱在我的主目录中,而不是默认隐藏在* nix上。

即使对那些不太了解Windows目录结构布局的用户来说,也可以通过在编辑器中打开配置文件的菜单项(或类似的)来简化它们。

如果可能的话,尽管提供了一个GUI前端的文件,即使它非常简单。 Windows用户将期望一个工具| 选项菜单项,调出一个对话框,允许他们设置选项,而不会有一个没有加上。

python appdirs包在各种平台上找到应用程序数据的标准位置很不错。 例如,对于Windows,它使用英语的XP位置:

C:\Documents and Settings\<User>\Application Data\Local Settings\<AppAuthor>\<AppName> 

在Linux上它遵循XDG标准:

  ~/.config/<appname> 

在Windows上,用户不需要使用可编辑的配置文件配置应用程序,所以没有标准。
使用GUI可编辑的配置标准是注册表。

如果你正在使用QT(或PyQT?),那么你可以使用提供抽象层的QSettings 。 在Linux上它使用一个配置文件,并在Windows上写入注册表。