- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
为 Python 程序创 build 置文件,内置模块(ConfigParser)或独立项目(ConfigObj),或使用 YAML 数据序列化格式,哪个更好?我听说 ConfigObj 比 ConfigParser 更容易使用,尽管它不是内置库。我还读到 PyYAML 很容易使用,尽管 YAML 需要一些时间来使用。除了易于实现之外,哪个是创 build 置/配置文件的最佳选择?
最佳答案
这取决于您想在配置文件中存储什么以及如何使用它们
如果您进行往返 (yaml→code→yaml) 并希望保留注释,则不能使用 PyYAML
或 ConfigParser
。
如果您想保留 key 的顺序(例如,当您 checkin 配置文件时),PyYAML
不会这样做,除非您指定 !!omap
(这使得更新比普通映射更容易)
如果您想要具有包含映射/字典的未命名元素列表的复杂结构,那么 ConfigParser
和 ConfigObj
将无法帮助您作为 INI 文件键值对必须进入部分,列表只能是值。
ruamel.yaml
YAML 阅读器的实现支持上述所有 ¹。很长一段时间以来,我一直使用fuzzyman 出色的ConfigObj 来保存往返评论,以及使用PyYAML 来处理更复杂的结构,这结合了两全其美。 ruamel.yaml
包含 yaml
实用程序,可以将 ConfigObj
INI 文件转换为 YAML
¹ ruamel.yaml 是一个支持 YAML 1.2 的 YAML 库(我建议使用它,但我是该包的作者)。 PyYAML 仅支持(大部分)YAML 1.1。
关于python - ConfigObj/ConfigParser 与为 Python 设置文件使用 YAML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3444436/
我有几个关于 configobj 的问题,我很乐意尝试用于此项目。 第一个问题是,我如何列出一个很长的 list ?假设我已经在规范文件中声明了。 val = 字符串列表 现在我想做 值=一, 二,
我一直在查看 ConfigObj,但遇到了验证和单元素列表方面的问题。假设我有一个如下所示的配置规范: config_specification = """[Data] [[__many__]]
我正在使用 ConfigObj 和 Validator 来解析 python 中的配置文件。虽然我非常喜欢这个工具,但我在使用 configSpec 文件进行验证时遇到了问题。我使用 option()
我使用 ConfigObj 来解析格式的配置文件: [APACHE] init_script= ... [TOMCAT] [[TOMCAT1]] init_script = [
我正在尝试使用 ConfigObj 通过函数写入配置文件。 #!/usr/bin/evn python3.5 import configobj def createConfig(path):
我正在使用 configobj 读取配置文件,如下所示。 [default] PROP1 = "12345" PROP2 = "abcde" [section1] PROP1
我在迭代 configObj 对象中的部分时遇到一些问题。我想要做的是迭代一个部分中的子部分。当我运行我的代码时,出现错误“TypeError:'Section' object is not call
如果我运行以下脚本: from configobj import ConfigObj config = ConfigObj() config.filename = 'test.cfg' config[
有人可以指导我安装 python configobj 模块吗?我是从here下载的 但是在安装过程中会报错 except Exception, e: ^ SyntaxE
我正在使用 ConfigObj 5.0.6 来保存许多用户定义的值,其中一些是嵌套的。我使用 local.ini 来取代典型值。没有前端,因此用户可以根据需要编辑配置。为了使这更容易和更直观,有一些值
我有一个 configobj 文件,我可以从中读取,但是我想使用 as_bool 方法从文件中读取一些值。目前我正在使用以下代码并惨遭失败! configFile = 'config.conf' co
我想对 configobj 的值同时使用解析时间和运行时插值配置文件。在 Python 中进行简单字符串插值的最简单方法是 "%(foo)s"% somedict。不幸的是 configobj 使用相
为 Python 程序创 build 置文件、内置模块 (ConfigParser) 或独立项目 (ConfigObj) 哪个更好? 最佳答案 我最近从 configparser 切换到 config
我一直想通过从简单的文本文件中读取变量来定义 Python 中的变量。因此,我阅读了 ConfigParser、ConfigObj、PyYaml 和 JSON 等内容。目前我对 ConfigObj 和
如何在 ConfigObj 中编写注释? 我正在使用 python 2.4.3 和 ConfigObj 4.7 我在 ConfigObj 文档中没有看到任何方法。 最佳答案 经过一些测试,我发现你也可
我正在尝试安装模块 ConfigObj。我做的一切都是正确的 在 CMD 中输入: python setup.py install 但告诉我一个回溯(错误) > C:\Users\Frederik\D
我正在 Python 中使用 ConfigObj 来读取我的配置文件。我需要从配置文件中读取列表列表。这是我到目前为止所尝试过的: 章节和小节 - 创建字典,而不是列表 list_of_lists =
我正在尝试使用 StringIO 来提供 ConfigObj。我想在我的单元测试中执行此操作,以便我可以根据我想在配置对象中测试的内容动态模拟配置"file"。 我在配置模块中处理了一大堆事情(我正在
我正在使用 ConfigObj在带有模板样式插值的 python 中。通过 ** 打开我的配置字典似乎没有进行插值。这是功能还是错误?有什么好的解决方法吗? $ cat my.conf foo = /
为 Python 程序创 build 置文件,内置模块(ConfigParser)或独立项目(ConfigObj),或使用 YAML 数据序列化格式,哪个更好?我听说 ConfigObj 比 Conf
我是一名优秀的程序员,十分优秀!