分析配置文件并从中提取值

confget的Python项目详细描述


confget-分析配置文件

confget库解析配置文件(当前是ini样式 文件和cgiQUERY_STRING环境变量)并允许程序 使用其中定义的值。它为 选择要返回的变量名和值以及配置 要从中获取它们的文件节。

confget库也可用作 与C实现相同的接口。

confget库是完全类型的。

指定后端的配置值

confget.defs模块定义了用于 控制各种后端的行为。它的主要部分 目的是指定 ini样式的文件,但其他后端可能以不同的方式使用其字段。

使用以下参数创建Config对象:

  • 要查询的变量名列表(可能为空)
  • filename(str,可选):要打开的文件的名称
  • section(str,default“”):文件中节的名称
  • section_specified(bool,默认为false):如果section为空 string,仅从 文件而不是默认为文件的第一部分

分析ini样式的配置文件

库的“ini”后端解析ini样式的配置 文件。它的read_file()方法解析文件并返回字典 部分和变量及其值:

import confget

cfg = confget.Config([], filename='config.ini')
ini = confget.BACKENDS['ini'](cfg)
data = ini.read_file()
print('Section names: {names}'.format(names=sorted(data.keys())))
print(data['server']['address'])

让部分中的变量覆盖默认变量

在某些情况下,在第一个 在文件中命名节,然后重写 部分。这对于特定于主机的配置可能很有用 保存在与宿主同名的节中。

库中的format模块允许 过滤模式,以获取带有节的变量列表 覆盖默认值:

from confget import backend, format

cfg = format.FormatConfig(['foo'], filename='config.ini', section='first',
                          section_override=True)
ini = backend.BACKENDS['ini'](cfg)
data = ini.read_file()
res = format.filter_vars(cfg, data)
assert len(res) == 1, repr(res)
print(res[0].output_full)

cfg = format.FormatConfig(['foo'], filename='config.ini', section='second',
                          section_override=True)
ini = backend.BACKENDS['ini'](cfg)
data = ini.read_file()
res = format.filter_vars(cfg, data)
assert len(res) == 1, repr(res)
print(res[0].output_full)

请参阅FormatConfig类和filter_vars()类的文档。 有关详细信息和 其他各种过滤模式的列表,在 库用作命令行工具。

点评:彼得·彭切夫roam@ringlet.net

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java HttpServletResponse在保存时提示输入文件名   基于Java中的XML值重新创建XML   Java中递归调用的一个堆栈占用多少内存?   java数字到二进制到零计数器   java Primefaces选项卡视图:在计数后设置活动索引   xml在Java中可以将XSD转换为XPath吗?   在递归循环中检测JDBC连接的java插件/工具   spring mvc中的java处理错误   java向spring安全认证添加子域   在安卓中设置时,java日期不正确   java setColorFilter适用于所有按钮   java Android:Bitmap-to-Byte数组和back:SkImageDecoder::Factory返回null   java如何使用lambda实现ComponentScan的自定义过滤器?   java iOS推送通知不工作   java在异步servlet中用新请求替换旧请求