oslo_config学习小结

2.配置文件加载方法

2.1基础

配置文件指的是文件以.conf,.ini结尾等内容为配置项的文件,配置文件内容格式一般为

DEFAULT

option = value

sectiona

optiona = valuea

optionb = valueb

sectionb

optionc = valuec

optiond = valued

2.2加载方法(可能不全,欢迎批评指正)

2.2.1 oslo_config

功能 读取配置文件,可以一次读多个配置文件到一个对象

特点 相比于configparser开销较大,读取的配置项都要先注册(那要读100个是不是得写100个?晕...)

加载思路:

1.获取存放配置项的对象,假设叫conf

2.注册希望加载的配置项,先定义你要加载的配置项,比如类型,默认值,定义完了把这个定义的对象注册到第一步的conf对象中

3.给第一步的对象conf传一个配置文件路径,然后conf对象会去配置文件寻找我们刚才定义的配置项的值

用法(不唯一):

from oslo_config import cfg

conf = cfg.CONF # 首先需要一个配置文件对象用来存放我们想获取的配置项

读配置文件需要读取的配置项需要先注册,就是确认这个conf对象里要包含哪些配置项,然后指定文件去搜索配置项的值在文件中是否存在,存在即刷新值,不存在就使用下面opt的默认值default,这里opt的类型很多,可自行搜索,附些比较基本且全面的link。

OpenStack 配置解析库 oslo.config 的使用方法_wx60dc8ce39e154的技术博客_51CTO博客

python配置模块oslo.config_时空无限的博客-CSDN博客_oslo_config

python openstack oslo_config使用_OpenStack 实现技术分解 (7) 通用库 --- oslo_config_weixin_39942492的博客-CSDN博客

one_opt = cfg.StrOpt('option',default='option',help='option') # 单个需加载的配置项,此处要先定义,然后等会注册到conf对象中,最后读取配置文件到配置文件中获取配置项的值

many_opts = [cfg.StrOpt('optiona',default='optiona',help='optiona'),cfg.StrOpt('optionb',default='optionb',help='optionb')] # 多个配置项

sectiona_group = cfg.OptGroup(name='sectiona',title='sectiona')

定义结束 开始注册

conf.register_opt(one_opt)

conf.register_group(sectiona_group)

conf.register_opts(many_opts, sectiona_group)

注册结束,开始到配置文件加载配置项

conf(default_config_files=['cfgfilea','cfgfileb','cfgfilec'])

读取配置项值

print(conf.option)

print(conf.sectiona.optiona)

print(conf.sectiona.optionb)

2.2.2 configparser

功能 读单个配置文件

说明 configparser是一个模块,一般使用会用到其中两个类,分别是ConfigParser和RawConfigParser,我理解的两者的区别是前者可以识别配置文件中的引用,后者不支持

常用接口

python中RawConfigParser类、ConfigParser类、SafeConfigParser类中函数介绍_鲁小瓜的博客-CSDN博客_python safeconfigparser

几个例子

Python的ConfigParser Module 中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser。 RawCn_lucy12012的博客-CSDN博客

python的ConfigParser模块 - 简书 (jianshu.com)

相关推荐
Mr Xu_20 小时前
【Vue3 + ECharts 实战】正确使用 showLoading、resize 与 dispose 避免内存泄漏
前端·信息可视化·vue·echarts
四维碎片20 小时前
【Qt】UDP跨平台调试工具
qt·学习·udp
0思必得020 小时前
[Web自动化] Selenium设置相关执行文件路径
前端·爬虫·python·selenium·自动化
雯0609~20 小时前
hiprint:实现项目部署与打印1-官网提供普通html版本
前端·html
好奇龙猫21 小时前
【人工智能学习-AI入试相关题目练习-第十八次】
人工智能·学习
C雨后彩虹21 小时前
CAS与其他并发方案的对比及面试常见问题
java·面试·cas·同步·异步·
程序员辣条21 小时前
AI产品经理:2024年职场发展的新机遇
人工智能·学习·职场和发展·产品经理·大模型学习·大模型入门·大模型教程
不绝19121 小时前
UGUI——进阶篇
前端
wanping1582599234121 小时前
AI Agent(学习六-FAISS 持久化到磁盘(重启不丢记忆))
人工智能·学习·faiss
Exquisite.21 小时前
企业高性能web服务器(4)
运维·服务器·前端·网络·mysql