Python中使用ConfigParser解析ini配置文件实例


Posted in Python onAugust 30, 2014

ini文件是windows中经常使用的配置文件,主要的格式为:

[Section1]

option1 : value1

option2 : value2

python提供了一个简单的模块ConfigParser可以用来解析类似这种形式的文件。对于ConfigParser模块可以解析key:value和key=value这样的类型,对于#和;开头的行将会自动忽视掉。相当于注释行。常用的函数:
ConfigParser.RawConfigParser()
RawConfigParser Object的操作有:
.sections() : 返回所有可用的section 

.addsection(sectionname) :添加section 

.set(sectionname, optionname, optionvalue): 添加option 

.hassection(sectionname) :判断 

.options(sectionname) : 返回section下可用的option 

.hasoption(sectionname, optionname) : 判断 

.read(filename) : 读取文件 

.wrie(filename) : 将RawConfigParser对象写到文件中 

.get(sectionname, optionname) : 获取值, 默认的是返回string类型 

.getfloat, .getint, .getboolean : 获取不同类型的返回值,参数和get的参数一样 

.items(sectionname) :列出section下的所有key:value 

.remove(sectionname) :删除section 

.remove(sectionname, option_name) : 删除section下的某个option

Demo -- 生成文件
$ cat ini_demo.py

# -*- coding:utf-8 -*-
import ConfigParser
def gen_ini():

    ftest = open('test','w')

    config_write = ConfigParser.RawConfigParser()

    config_write.add_section('Section_a')

    config_write.add_section('Section_b')

    config_write.add_section('Section_c')

    config_write.set('Section_a','option_a1','apple_a1')

    config_write.set('Section_a','option_a2','banana_a2')

    config_write.set('Section_b','option_b1','apple_b1')

    config_write.set('Section_b','option_b2','banana_b2')

    config_write.set('Section_c','option_c1','apple_c1')

    config_write.set('Section_c','option_c2','banana_c2')   

    config_write.write(ftest)

    ftest.close()
if __name__ == "__main__":

    gen_ini()

最后生成的文件为:
$ cat test

[Section_a]

option_a1 = apple_a1

option_a2 = banana_a2
[Section_c]

option_c2 = banana_c2

option_c1 = apple_c1
[Section_b]

option_b1 = apple_b1

option_b2 = banana_b2

Demo -- 读取文件
def read_ini():

    config_read = ConfigParser.RawConfigParser()

    config_read.read('test')

    print config_read.sections()

    print config_read.items('Section_a')

    print config_read.get('Section_a','option_a1')

最后的结果为:
['Section_a', 'Section_c', 'Section_b']

[('option_a2', 'banana_a2'), ('option_a1', 'apple_a1')]

apple_a1
Python 相关文章推荐
python strip()函数 介绍
May 24 Python
python中的字典详细介绍
Sep 18 Python
Python 3中的yield from语法详解
Jan 18 Python
Pycharm学习教程(3) 代码运行调试
May 03 Python
Python编程之序列操作实例详解
Jul 22 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
python3使用smtplib实现发送邮件功能
May 22 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 Python
简单分析python的类变量、实例变量
Aug 23 Python
pytorch之Resize()函数具体使用详解
Feb 27 Python
python3 xpath和requests应用详解
Mar 06 Python
Pandas读取csv时如何设置列名
Jun 02 Python
python进阶教程之动态类型详解
Aug 30 #Python
python进阶教程之异常处理
Aug 30 #Python
python进阶教程之函数对象(函数也是对象)
Aug 30 #Python
python进阶教程之循环对象
Aug 30 #Python
python进阶教程之循环相关函数range、enumerate、zip
Aug 30 #Python
python进阶教程之函数参数的多种传递方法
Aug 30 #Python
python进阶教程之模块(module)介绍
Aug 30 #Python
You might like
php多线程实现方法及用法实例详解
2015/10/26 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
Python二分法搜索算法实例分析
2015/05/11 Python
python基础知识小结之集合
2015/11/25 Python
Flask数据库迁移简单介绍
2017/10/24 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
解决Python安装cryptography报错问题
2020/09/03 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
如何利用cmp命令比较文件
2013/09/23 面试题
营销与策划专业毕业生求职信
2013/11/01 职场文书
记帐员岗位责任制
2014/02/08 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
班级年度安全计划书
2014/05/01 职场文书
触电现场处置方案
2014/05/14 职场文书
厕所文明标语
2014/06/11 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
单位未婚证明范本
2014/11/25 职场文书
新闻稿标题
2015/07/18 职场文书
导游词之无锡梅园
2019/11/28 职场文书
python中 Flask Web 表单的使用方法
2022/05/20 Python