我需要存储 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.py
AFAIK,但最终结果是相同的:执行设置文件内的代码。
- bash shell 读取并执行
~/.bashrc
启动时。
- Python解释器导入
site.py
启动时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)