Python操作配置文件ini的三种方法讲解


Posted in Python onFebruary 22, 2019

python 操作配置文件ini的三种方法

方法一:crudini 命令

说明

crudini命令是Linux下的一个操作配置文件的命令工具

用法

crudini --set [--existing] config_file section [param] [value] # 修改配置文件内容
crudini --get [--format=sh|ini] config_file [section] [param] # 获取配置文件内容
crudini --del [--existing] config_file section [param]     # 删除配置文件内容
crudini --merge [--existing] config_file [section]       # 合并

举例

添加

crudini --set test.ini test_section test_param test_value

更新

crudini --set [--existing] test.ini test_section test_param test_value

删除

删除param:

crudini --del test.ini test_section test_param

删除section:

crudini --del test.ini test_section

获取

crudini --del test.ini test_section test_param

如果该标量不在某一个section里面,则section用一个空字符表示:

crudini --del test.ini '' test_param

合并

将another.ini配置文件合并到test.ini中:

crudini --merge test.ini < another.ini

方法二 :ConfigParser模块

说明

ConfigParser 模块为常用的操作ini文件的模块,但是存在一些缺陷,无法识别section的大小写,无法读取文件注释,这样修带有注释的配置文件时就会存在问题。

用法示例

示例文件test.ini

[test_section]
test_param = test_value

读取

import ConfigParser
config = ConfigParser.ConfigParser()
config.readfp(open('test.ini'))
test_value = config.get("test_section","test_param")

写入

添加section

import ConfigParser
config = ConfigParser.ConfigParser()
# set a value of parameters
config.add_section("test_section2")
config.set("test_section2", "test_param2", "test_value2")
config.set("test_section3", "test_param3", "test_value3")
# write to file
config.write(open('test.ini', "w"))

修改

import ConfigParser
config = ConfigParser.ConfigParser()
config.read('1.ini')
config.set("test_section", "test_param3", "test_value3")
config.write(open('test.ini', "r+"))

方法三:configobj模块

说明

正常的读配置文件的方法是给ConfigObj一个文件名,然后通过字典来访问成员,子段来获取value值,不会存在注释无法读取的缺陷

用法示例

示例文件test.ini

[test_section]
test_param = test_value

读取

from configobj import ConfigObj 
config = ConfigObj("test.ini",encoding='UTF8') 
# 读配置文件 
print config['test_section'] 
print config['test_section']['test_param ']

修改

from configobj import ConfigObj 
config = ConfigObj("test.ini",encoding='UTF8') 
config['test_section']['test_param '] = "test_value2" 
# 写入
config.write()

添加section

from configobj import ConfigObj 
config = ConfigObj("test.ini",encoding='UTF8') 
config['test_section2'] = {} 
config['test_section2']['test_param'] = "test_value" 
# 写入
config.write()

删除

from configobj import ConfigObj 
config = ConfigObj("test.ini",encoding='UTF8') 
del config['test_section2']['test_param'] 
config.write()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
深入学习Python中的装饰器使用
Jun 20 Python
python中urlparse模块介绍与使用示例
Nov 19 Python
Python字典,函数,全局变量代码解析
Dec 18 Python
python print 按逗号或空格分隔的方法
May 02 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
Django Rest framework频率原理与限制
Jul 26 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
python+opencv实现车牌定位功能(实例代码)
Dec 24 Python
执行Python程序时模块报错问题
Mar 26 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 Python
Pytorch高阶OP操作where,gather原理
Apr 30 Python
在python里使用await关键字来等另外一个协程的实例
May 04 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 #Python
python调用虹软2.0第三版的具体使用
Feb 22 #Python
Python实现图片转字符画的代码实例
Feb 22 #Python
Python中正则表达式的用法总结
Feb 22 #Python
python ddt数据驱动最简实例代码
Feb 22 #Python
Flask框架踩坑之ajax跨域请求实现
Feb 22 #Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 #Python
You might like
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
Yii rules常用规则示例
2016/03/15 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
js实现进度条的方法
2015/02/13 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
Python列表推导式的使用方法
2013/11/21 Python
python数据结构之二叉树的建立实例
2014/04/29 Python
TensorFlow数据输入的方法示例
2018/06/19 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
Python OS模块实例详解
2019/04/15 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
python基于event实现线程间通信控制
2020/01/13 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
分享一个python的aes加密代码
2020/12/22 Python
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
银行实习生的自我评价
2014/01/13 职场文书
演讲稿开场白
2014/01/13 职场文书
公司承诺书怎么写
2014/05/24 职场文书
城市创卫标语
2014/06/17 职场文书
乡镇爱国卫生月活动总结
2014/06/25 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
运动会通讯稿600字
2015/07/20 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
Redis RDB技术底层原理详解
2021/09/04 Redis
docker-compose部署Yapi的方法
2022/04/08 Servers