对于为Python程序创建设置文件,内置模块(ConfigParser)或独立项目(ConfigObj),还是使用YAML数据序列化格式,哪个更好?我听说 ConfigObj 比 ConfigParser 更容易使用,尽管它不是内置库。我还了解到 PyYAML 很容易使用,尽管 YAML 需要一些时间来使用。除了易于实施之外,哪个是创建设置/配置文件的最佳选择?
这取决于您想要在配置文件中存储的内容以及如何使用它们
-
如果您进行往返(yaml→code→yaml)并希望保留注释,则不能使用PyYAML
or ConfigParser
.
-
如果您想保留密钥的顺序(例如,当您签入配置文件时),PyYAML
除非您指定,否则不会这样做!!omap
(这使得它比普通映射更不容易更新)
-
如果您想要具有包含映射/字典的未命名元素列表的复杂结构,那么ConfigParser
and ConfigObj
不会帮助您,因为 INI 文件键值对必须进入部分,并且列表只能是值。
The ruamel.yaml https://pypi.python.org/pypi/ruamel.yamlYAML 阅读器的实现支持所有上述 1。我长期以来一直使用 fuzzyman 出色的 ConfigObj 来保存往返注释,并使用 PyYAML 来保存更复杂的结构,这结合了两全其美。ruamel.yaml
包括yaml
可以转换的实用程序ConfigObj
INI 文件到 YAML
¹ ruamel.yaml is a YAML library that supports YAML 1.2 (I recommend using that, but then I am the author of the package). PyYAML only supports (most of) YAML 1.1.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)