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参数和作用域的使用
Nov 01 Python
python清除字符串里非字母字符的方法
Jul 02 Python
Python tkinter模块中类继承的三种方式分析
Aug 08 Python
Python中sort和sorted函数代码解析
Jan 25 Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 Python
Django forms组件的使用教程
Oct 08 Python
Python分割指定页数的pdf文件方法
Oct 26 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
Python3如何实现Win10桌面自动切换
Aug 11 Python
Selenium环境变量配置(火狐浏览器)及验证实现
Dec 07 Python
Python实现生成bmp图像的方法
Jun 13 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/12/06 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
Underscore源码分析
2015/12/30 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
举例区分Python中的浅复制与深复制
2015/07/02 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
Python字符串处理实例详解
2017/05/18 Python
python占位符输入方式实例
2019/05/27 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
Django 拆分model和view的实现方法
2019/08/16 Python
python multiprocessing多进程变量共享与加锁的实现
2019/10/02 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
我的未来不是梦演讲稿
2014/09/02 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js