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 相关文章推荐
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
Python魔术方法详解
Feb 14 Python
Python与shell的3种交互方式介绍
Apr 11 Python
python执行get提交的方法
Apr 29 Python
Python编程实现正则删除命令功能
Aug 30 Python
解决csv.writer写入文件有多余的空行问题
Jul 06 Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 Python
python遍历文件目录、批量处理同类文件
Aug 31 Python
Python面向对象原理与基础语法详解
Jan 02 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
Feb 12 Python
Tensorflow中的dropout的使用方法
Mar 13 Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 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面向对象自动加载机制原理与用法分析
2016/10/14 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
JavaScript之引用类型介绍
2012/08/10 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
浅析python递归函数和河内塔问题
2017/04/18 Python
Python实现KNN邻近算法
2021/01/28 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
python 实现UTC时间加减的方法
2018/12/31 Python
Python中的 enum 模块源码详析
2019/01/09 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
Python模块的制作方法实例分析
2019/12/21 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
HTML5自定义mp3播放器源码
2020/01/06 HTML / CSS
介绍一下Make? 为什么使用make
2013/12/08 面试题
文明市民先进事迹
2014/05/15 职场文书
社区矫正工作方案
2014/06/04 职场文书
精神文明建设标语
2014/06/16 职场文书
市场部岗位职责
2015/02/12 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
培训后的感想
2015/08/07 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
Java 数组的使用
2022/05/11 Java/Android