Python配置文件解析模块ConfigParser使用实例


Posted in Python onApril 13, 2015

一、ConfigParser简介

ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。

 [db]

 db_host = 127.0.0.1

 db_port = 22

 db_user = root

 db_pass = rootroot

 

 [concurrent]

 thread = 10

 processor = 20

中括号“[ ]”内包含的为section。紧接着section 为类似于key-value 的options 的配置内容。
 
二、ConfigParser 初始工作

使用ConfigParser 首选需要初始化实例,并读取配置文件:

 cf = ConfigParser.ConfigParser()

 cf.read("配置文件名")

三、ConfigParser 常用方法

1. 获取所有sections。也就是将配置文件中所有“[ ]”读取到列表中:

 s = cf.sections()

 print 'section:', s

将输出(以下将均以简介中配置文件为例):
 section: ['db', 'concurrent']

2. 获取指定section 的options。即将配置文件某个section 内key 读取到列表中:
 o = cf.options("db")

 print 'options:', o

将输出:
 options: ['db_host', 'db_port', 'db_user', 'db_pass']

3. 获取指定section 的配置信息。
 v = cf.items("db")

 print 'db:', v

将输出:
 db: [('db_host', '127.0.0.1'), ('db_port', '22'), ('db_user', 'root'), ('db_pass', 'rootroot')]

4. 按照类型读取指定section 的option 信息。
同样的还有getfloat、getboolean。
 #可以按照类型读取出来

 db_host = cf.get("db", "db_host")

 db_port = cf.getint("db", "db_port")

 db_user = cf.get("db", "db_user")

 db_pass = cf.get("db", "db_pass")

 

 # 返回的是整型的

 threads = cf.getint("concurrent", "thread")

 processors = cf.getint("concurrent", "processor")

 

 print "db_host:", db_host

 print "db_port:", db_port

 print "db_user:", db_user

 print "db_pass:", db_pass

 print "thread:", threads

 print "processor:", processors

将输出:
 db_host: 127.0.0.1

 db_port: 22

 db_user: root

 db_pass: rootroot

 thread: 10

 processor: 20

5. 设置某个option 的值。(记得最后要写回)
 cf.set("db", "db_pass", "zhaowei")

 cf.write(open("test.conf", "w"))

6.添加一个section。(同样要写回)
 cf.add_section('liuqing')

 cf.set('liuqing', 'int', '15')

 cf.set('liuqing', 'bool', 'true')

 cf.set('liuqing', 'float', '3.1415')

 cf.set('liuqing', 'baz', 'fun')

 cf.set('liuqing', 'bar', 'Python')

 cf.set('liuqing', 'foo', '%(bar)s is %(baz)s!')

 cf.write(open("test.conf", "w"))

7. 移除section 或者option 。(只要进行了修改就要写回的哦)
 cf.remove_option('liuqing','int')

 cf.remove_section('liuqing')

 cf.write(open("test.conf", "w"))
#!/usr/bin/env python

from ConfigParser import ConfigParser

CONFIGFILE="f.txt"

config=ConfigParser()

config.read(CONFIGFILE)

print config.get('messages','greeting')

radius=input(config.get('messages','questions')+' ')

print config.get('messages','result')

print config.getfloat('numbers','pi')*radius**2
s=config.sections()

print'section: ',s

o=config.options('messages')

print'messages option: ',o

v=config.items("messages")

print'message de xinxi: ',v
config.add_section('liuyang1')

config.set('liuyang1','int','15')

config.set('liuyang'1,'hhhh','hello world')

config.write(open("f.txt","w"))

print config.get('liuyang1','int')

print config.get('liuyang1','hhhh')

#!/usr/bin/env python

import ConfigParser

import sys

config=ConfigParser.ConfigParser()

config.add_section("book1")

config.set("book1","title","hello world")

config.set("book1","aut","log")

config.write(open("f.txt","w"))
Python 相关文章推荐
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
编写Python脚本抓取网络小说来制作自己的阅读器
Aug 20 Python
Python彩色化Linux的命令行终端界面的代码实例分享
Jul 02 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
transform python环境快速配置方法
Sep 27 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
Oct 11 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
python 一个figure上显示多个图像的实例
Jul 08 Python
Python split() 函数拆分字符串将字符串转化为列的方法
Jul 16 Python
应用OpenCV和Python进行SIFT算法的实现详解
Aug 21 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
Python中有几个关键字
Jun 04 Python
深入Python函数编程的一些特性
Apr 13 #Python
Python命令行参数解析模块getopt使用实例
Apr 13 #Python
Python中文件操作简明介绍
Apr 13 #Python
Python单元测试框架unittest简明使用实例
Apr 13 #Python
进一步了解Python中的XML 工具
Apr 13 #Python
Python中的模块和包概念介绍
Apr 13 #Python
Python多线程编程简单介绍
Apr 13 #Python
You might like
使用PHP强制下载PDF文件示例
2014/01/17 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
十幅图告诉你什么是PHP引用
2015/02/22 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
JavaScript基本概念初级讲解论坛贴的学习记录
2009/02/22 Javascript
JavaScript 加号(+)运算符号
2009/12/06 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
JQuery标签页效果实例详解
2015/12/24 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
使用selenium抓取淘宝的商品信息实例
2018/02/06 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
python求素数示例分享
2014/02/16 Python
使用Python操作MySQL的一些基本方法
2015/08/16 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
python随机数分布random均匀分布实例
2019/11/27 Python
python小白切忌乱用表达式
2020/05/29 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
临床医学系毕业生推荐信
2013/11/09 职场文书
创伤外科专业推荐信范文
2013/11/19 职场文书
客户接待方案
2014/02/26 职场文书
清明节演讲稿
2014/05/27 职场文书
预备党员群众意见
2015/06/01 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书