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读取浮点数和读取文本文件示例
May 06 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
selenium处理元素定位点击无效问题
Jun 12 Python
python安装pil库方法及代码
Jun 25 Python
python实现五子棋游戏(pygame版)
Jan 19 Python
在pytorch中实现只让指定变量向后传播梯度
Feb 29 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
Dec 27 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 Python
python开发的自动化运维工具ansible详解
Aug 07 Python
Python数据处理的三个实用技巧分享
Apr 01 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
isset和empty的区别
2007/01/15 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
JavaScript QueryString解析类代码
2010/01/17 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
jquery禁用右键单击功能屏蔽F5刷新
2014/03/17 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
js图片轮播效果实现代码
2020/04/18 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
python调用windows api锁定计算机示例
2014/04/17 Python
github配置使用指南
2014/11/18 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
python 基于opencv去除图片阴影
2021/01/26 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
实习鉴定评语
2014/01/19 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
2021/09/25 Java/Android