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 相关文章推荐
mac安装pytorch及系统的numpy更新方法
Jul 26 Python
python3 爬取图片的实例代码
Nov 06 Python
总结Python图形用户界面和游戏开发知识点
May 22 Python
python使用Qt界面以及逻辑实现方法
Jul 10 Python
Djang的model创建的字段和参数详解
Jul 27 Python
Python logging设置和logger解析
Aug 28 Python
python提取xml里面的链接源码详解
Oct 15 Python
Python输出指定字符串的方法
Feb 06 Python
详解python 破解网站反爬虫的两种简单方法
Feb 09 Python
Python实现名片管理系统
Feb 14 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 Python
python实现126邮箱发送邮件
May 20 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
在 PHP 中使用随机数的三个步骤
2006/10/09 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
php include类文件超时问题处理
2015/02/06 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
Document.body.scrollTop的值总为零的快速解决办法
2016/06/09 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
Python进程间通信之共享内存详解
2017/10/30 Python
python assert的用处示例详解
2019/04/01 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
python openpyxl模块的使用详解
2021/02/25 Python
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
struct与class的区别
2014/02/03 面试题
运动会跳远加油稿
2014/02/20 职场文书
教师新年寄语
2014/04/03 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
开除员工通知
2015/04/22 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
python 管理系统实现mysql交互的示例代码
2021/12/06 Python
Java详细解析==和equals的区别
2022/04/07 Java/Android