python用Configobj模块读取配置文件


Posted in Python onSeptember 26, 2020

一、介绍

我们在项目的开发过程中应该会遇到这样的问题:我们的项目读取某个配置文件,然后才能按照配置的信息正常运行服务,当我们需要对修改服务的某些信息时,可以直接修改这个配置文件,重启服务即可,不用再去打开项目代码进行修改,这样方便了我们后期运维人员的工作。

读取配置文件信息,修改配置文件,我们可以使用Configobj和ConfigParser模块,个人推荐使用Configobj模块,因为Configobj相比于ConfigParser,优势在于Configobj模块的使用更加清晰简单(其实是我看到ConfigParser模块好像复杂一点,自己选了个简单点的模块而已,哈哈哈哈哈)。

pip install configobj

configobj的简单之处就在于,它是以字典的形式来读取/修改配置文件,就跟操作字典一样,很简单,下面看看例子就知道了。

二、configobj的使用

1、test.cfg配置文件

[server]
name = zbj
port = 9000
 
[home]
# 注释
area = huizhou

2、读取配置文件信息

from configobj import ConfigObj


# 实例化一个Configobj对象,给ConfigObj一个配置文件的路径,然后通过字典来访问成员,子段也是一个字典
cfg_path = "./test.cfg"
config = ConfigObj(cfg_path, encoding='UTF-8')

# 读配置文件
print(config['server']) # {'name': 'zbj', 'port': '9000'}
print(config['server']['name']) # zbj

3、修改配置文件

from configobj import ConfigObj


cfg_path = "./test.cfg"
config = ConfigObj(cfg_path, encoding='UTF-8')
config['server']['name'] = "clj"
# 修改完记得write写入配置文件
config.write()

python用Configobj模块读取配置文件

4、给配置文件添加新项

from configobj import ConfigObj


cfg_path = "./test.cfg"
config = ConfigObj(cfg_path, encoding='UTF-8')
config['school'] = {}
config['school']['class'] = "three"
# 只要进行了修改(包括新增删除等)的操作,记得write修改
config.write()

python用Configobj模块读取配置文件

5、删除配置文件中的某个项

from configobj import ConfigObj


cfg_path = "./test.cfg"
config = ConfigObj(cfg_path, encoding='UTF-8')
del config['school']
del config['server']['port']
config.write()

python用Configobj模块读取配置文件

6、将配置文件写入到不同的文件

from configobj import ConfigObj


cfg_path = "./test.cfg"
config = ConfigObj(cfg_path, encoding='UTF-8')
config.filename = "./test.ini"
config.write()
# 此时会新建一个test.ini文件,然后会将test.cfg的内容写入到test.ini文件

python用Configobj模块读取配置文件

7、创建新的配置文件

from configobj import ConfigObj


# 实例化一个ConfigObj对象
config = ConfigObj()
# filename指定新创建的文件路径和名称
config.filename = './my_cfg.ini'

# 写入配置信息
config['people'] = {}
config['people']['name'] = 'zzbj'
config['people']['age'] = '18'
config.write()

python用Configobj模块读取配置文件

以上就是python用Configobj模块读取配置文件的详细内容,更多关于python Configobj模块的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
跨平台python异步回调机制实现和使用方法
Nov 26 Python
python实现360的字符显示界面
Feb 21 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
使用Filter过滤python中的日志输出的实现方法
Jul 17 Python
python模拟鼠标点击和键盘输入的操作
Aug 04 Python
Python字符串格式化输出代码实例
Nov 22 Python
Python如何操作office实现自动化及win32com.client的运用
Apr 01 Python
python实例化对象的具体方法
Jun 17 Python
如何表示python中的相对路径
Jul 08 Python
在django中实现choices字段获取对应字段值
Jul 12 Python
Python加载数据的5种不同方式(收藏)
Nov 13 Python
python 实现客户端与服务端的通信
Dec 23 Python
Python内存泄漏和内存溢出的解决方案
Sep 26 #Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 #Python
如何使用Python调整图像大小
Sep 26 #Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 #Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
Nov 25 #Python
详解Python中第三方库Faker
Sep 25 #Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 #Python
You might like
DISCUZ 论坛管理员密码忘记的解决方法
2009/05/14 PHP
PHP用GD库生成高质量的缩略图片
2011/03/09 PHP
PHP实现的简单缓存类
2015/07/29 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
jquery.validate使用攻略 第三部
2010/07/01 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
2013/08/14 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
javascript实现表单验证
2016/01/29 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
在MAC上搭建python数据分析开发环境
2016/01/26 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
python实现可逆简单的加密算法
2019/03/22 Python
python开发之anaconda以及win7下安装gensim的方法
2019/07/05 Python
python Django的web开发实例(入门)
2019/07/31 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
外贸业务员求职自荐信分享
2013/09/21 职场文书
舞蹈教师自荐信
2014/01/27 职场文书
人力资源总监工作说明
2014/03/03 职场文书
结对共建工作方案
2014/06/02 职场文书
承诺书范本大全
2015/05/04 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
Java线程的6种状态与生命周期
2022/05/11 Java/Android
MySQL数据库表约束讲解
2022/06/21 MySQL