分析配置文件并从中提取值
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