Python配置文件:有什么文件格式推荐吗? INI格式还合适吗?看起来很老派

2024-02-10

我需要存储 Python 应用程序的配置(键/值),并且我正在寻找将这些配置存储在文件中的最佳方法。

我遇到了Python的配置解析器 http://docs.python.org/library/configparser.html我想知道 INI 文件格式现在是否真的仍然合适?! 是否存在更新的格式或者 INI 仍然是推荐的方式? (XML、JSON、...)

请分享您的意见/建议...


考虑使用纯 Python 文件作为配置文件。

一个例子 (config.py):

# use normal python comments

value1 = 32
value2 = "A string value"

value3 = ["lists", "are", "handy"]
value4 = {"and": "so", "are": "dictionaries"}

在您的程序中,使用加载配置文件exec (docs https://docs.python.org/3/library/functions.html#exec):

from pathlib import Path

if __name__ == "__main__":
    config = {}
    exec(Path("config.py").read_text(encoding="utf8"), {}, config)
    
    print(config["value1"])
    print(config["value4"])

我喜欢这种方法,原因如下:

  • 在简单的情况下,该格式就像 INI 样式的配置文件一样易于编写。它还与 INI 文件共享一个重要特征:它非常适合版本控制(对于 XML 来说不太如此,也许对于 JSON 也如此)
  • 我喜欢使用实际编程语言配置文件所带来的灵活性。

该方法被广泛使用,举几个例子:

  • Django 站点的设置位于其中设置.py https://docs.djangoproject.com/en/1.3/topics/settings/。 Django 不使用execfile, 它用import读取/执行settings.pyAFAIK,但最终结果是相同的:执行设置文件内的代码。
  • bash shell 读取并执行~/.bashrc启动时。
  • Python解释器导入site.py启动时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python配置文件:有什么文件格式推荐吗? INI格式还合适吗?看起来很老派 的相关文章

随机推荐