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版的文曲星猜数字游戏代码
Sep 02 Python
python的类方法和静态方法
Dec 13 Python
更改Python命令行交互提示符的方法
Jan 14 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 Python
简单了解为什么python函数后有多个括号
Dec 19 Python
jupyter notebook清除输出方式
Apr 10 Python
python 从list中随机取值的方法
Nov 16 Python
再谈python_tkinter弹出对话框创建
Mar 20 Python
基于Python编写一个监控CPU的应用系统
Jun 25 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使用数组实现队列
2012/02/05 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
详解Django通用视图中的函数包装
2015/07/21 Python
python中类的属性和方法介绍
2018/11/27 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
python实现根据文件格式分类
2019/10/31 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
python和js交互调用的方法
2020/06/23 Python
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS