Python ConfigParser模块和Openstack olso.cfg模块
介绍
ConfigParser
ConfigParser实现了一种可用来解析ini配置文件配置项的语言。关于ini配置文件的有一些规则,
结构类似如下:
1 | [default] |
ConfigParser模块常用方法
读取操作
- read(file)
- sections()
- get(section, option)
- getint(section, option)
- getboolean(section, option)
- has_section(section)
- has_option(section, option)
写入操作
- add_section(section)
- set(section, option, value)
- remove_option(section, option)
- remove_section(section)
- write(file)
oslo.config
oslo是用来为openstak各个组建提供一个common库,其中也就包括了olso.config,用来解析命令行参数和配置文件。
- 解析自定义的参数,在openstack中,一般都提供默认值
- 解析一些公共的参数,如
--debug
、--verbose
- olso.config使用的配置文件是服务启动命令带有的参数
--config-file
,可指定多个。若未指定,会到默认的几个路径搜索。
使用步骤是:
1 | from oslo_config import cfg |
相比ConfigParser,oslo.config强大的多,但在自己的小程序中需要自定义配置时,使用ConfigParser足够了。
use
使用ConfigParser来为一般的daemon程序来写一个简单的cfg模块
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22“””
config.py
for example:
import config as cfg
CONF = cfg.CONF
CONF.get(‘default’, ‘test’)
“””
import ConfigParser
cfg_file = None
class ConfigOpts(ConfigParser.ConfigParser):
def init(self):
ConfigParser.ConfigParser.init(self)
def call(self, *args, **kwargs):
self.read(args[0])
CONF = ConfigOpts()
在程序的main函数中,获取args调用cfg的call,通过该方法来制定配置文件
1 | “”” |
这样,运行程序的时候,如python main.py /etc/test.conf
,就能读取到该配置文件的配置项,使用CONG.get(section, option)
就可以取的配置项。
参考
https://docs.python.org/2/library/configparser.html
https://wiki.openstack.org/wiki/Oslo/Config