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入门篇之字典
Oct 17 Python
利用Psyco提升Python运行速度
Dec 24 Python
Python实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
Python中xrange与yield的用法实例分析
Dec 26 Python
Django项目中model的数据处理以及页面交互方法
May 30 Python
利用python修改json文件的value方法
Dec 31 Python
python读取有密码的zip压缩文件实例
Feb 08 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
详解python中的闭包
Sep 07 Python
Python爬虫简单运用爬取代理IP的实现
Dec 01 Python
Python用access判断文件是否被占用的实例方法
Dec 17 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中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
PHP引用符&amp;的用法详细解析
2013/08/22 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
JavaScript 中的replace方法说明
2007/04/13 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python实现FLV视频拼接功能
2020/01/21 Python
Python matplotlib实时画图案例
2020/04/23 Python
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
会计自我鉴定
2013/11/02 职场文书
小学二年级评语
2014/04/21 职场文书
2014年教师节寄语
2014/08/11 职场文书
晚会闭幕词
2015/01/28 职场文书
2016年春节慰问信息
2015/03/25 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
nginx共享内存的机制详解
2022/03/21 Servers
关于MySQL中explain工具的使用
2023/05/08 MySQL