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根据日期返回星期几的方法
Jul 06 Python
用pickle存储Python的原生对象方法
Apr 28 Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
Python 比较两个数组的元素的异同方法
Aug 17 Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
Python实现上下班抢个顺风单脚本
Feb 07 Python
python编辑用户登入界面的实现代码
Jul 16 Python
使用python3构建文件传输的方法
Feb 13 Python
使用虚拟环境打包python为exe 文件的方法
Aug 29 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 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
给海燕B411配件机起死回生配上件
2021/03/02 无线电
php中memcache 基本操作实例
2015/05/17 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
javascript 隔行换色函数代码
2010/10/24 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
Underscore源码分析
2015/12/30 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
编写React组件项目实践分析
2018/03/04 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
layui实现数据分页功能
2019/07/27 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
Python反射用法实例简析
2017/12/22 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
Python使用for生成列表实现过程解析
2020/09/22 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
法人授权委托书
2014/04/03 职场文书
运动会演讲稿
2014/05/07 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
检讨书怎么写?
2019/06/21 职场文书
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android