解析配置文件并从中提取值
项目描述
confget - 解析配置文件
该confget
库解析配置文件(当前仅 INI 样式文件)并允许程序使用其中定义的值。它提供了用于选择要返回的变量名称和值以及从中获取它们的配置文件部分的各种选项。
该confget
库还可以用作具有与 C 实现相同接口的命令行工具。
该confget
库是完全类型化的。
为后端指定配置值
该confget.defs
模块定义了Config
用于控制各种confget
后端行为的类。它的主要目的是为 INI 样式文件指定文件名和可选的部分名称,但其他后端可能以不同的方式使用它的字段。
使用Config
以下参数创建对象:
- 要查询的变量名称列表(可能为空)
filename
(str, optional): 要打开的文件名section
(str, default ""): 文件中部分的名称section_specified
(bool, default false): 如果section
是空字符串,只从文件开头的未命名部分获取变量,而不是默认到文件中的第一部分
解析 INI 风格的配置文件
库confget
的“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
模块confget
还允许获取变量列表,其中包含覆盖默认变量的部分:
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()
函数的文档,confget.format
当库用作命令行工具时,所有这些都受支持。
评论:彼得·彭切夫 roam@ringlet.net
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
confget-4.1.1.tar.gz
(23.8 kB
查看哈希)
内置分布
confget-4.1.1-py2.py3-none-any.whl
(17.8 kB
查看哈希)