【问题标题】:Cross-platform method to obtain the user's configuration home directory in Python?Python中获取用户配置主目录的跨平台方法?
【发布时间】:2014-11-03 20:27:45
【问题描述】:

我的程序需要存储一些配置文件。主要的操作系统似乎有一个指定的位置来放置它们;例如,在符合 Freedesktop.org 的系统上,它将是存储在 $XDG_CONFIG_HOME 环境变量中的路径。

是否有一种方法(或库)可以跨主要操作系统获取此配置主目录:Windows、OS X、Linux?

【问题讨论】:

标签: python cross-platform configuration-files


【解决方案1】:

您可以使用包appdirs。这个是 ActiveState 开发的,肯定有很多跨平台的 python 经验。

import appdirs
appdirs.user_config_dir(appname='MyApp')

该包只是一个文件(/module),因此如果您需要它来编写一个小脚本,只需复制您需要的内容即可。否则,pipconda 都可以使用该软件包。

【讨论】:

    【解决方案2】:
    import os
    
    print os.path.expanduser("~/.my_config/data")
    

    将始终允许您编写...配置文件最好存储在想要它们的地方

    通常在 Windows 上是这样的

    os.path.expandvars("%appdata%/.my_config")
    

    大多数其他系统倾向于将 userprofile 目录 (~) 放入

    除非您正在寻找特定的配置文件位置(可能是为了与其他软件交互...在这种情况下,我们需要知道哪个软件)

    【讨论】:

    • 问题是~/.my_config 不是配置文件的标准位置。这意味着几个缺点。例如,如果我是用户,甚至是高级用户,我将无法定位/正确重置/备份该配置。我正在尝试获取正确的标准路径来放置配置,是的,在某些版本的 Windows 中将是 %appdata%,并且 OS X 可能使用另一个位置,但问题的关键是获取任何位置它在所有主要平台上都具有(理想情况下)一个函数调用。
    • 这不是标准吗?许多专业软件将它放在那里...(这是我在 linux 系统中寻找配置文件的第一个地方)...地狱就是您放置操作系统配置文件(.bashrc 等)的地方...大多数超级用户会查看主目录恕我直言...如果您希望用户手动编辑这些文件,那么您应该记录它们在用户主目录中...
    • 虽然一些配置文件,例如“点文件”,直接在主目录下,这不是一个标准的地方。查看Freedesktop specs,许多软件包都遵循它。此外,它当然不是跨平台的标准,例如在 Windows 上。
    猜你喜欢
    • 1970-01-01
    • 2011-05-01
    • 2010-10-25
    • 2011-10-21
    • 2023-02-23
    • 2011-02-02
    • 1970-01-01
    • 2022-10-24
    • 2017-08-11
    相关资源
    最近更新 更多