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通过pil模块获得图片exif信息的方法
Mar 16 Python
Python发送form-data请求及拼接form-data内容的方法
Mar 05 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
Python使用numpy实现BP神经网络
Mar 10 Python
python3库numpy数组属性的查看方法
Apr 17 Python
搭建python django虚拟环境完整步骤详解
Jul 08 Python
Python3 批量扫描端口的例子
Jul 25 Python
Django之路由层的实现
Sep 09 Python
基于torch.where和布尔索引的速度比较
Jan 02 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
Jun 02 Python
python 爬虫爬取京东ps4售卖情况
Dec 18 Python
Python爬虫UA伪装爬取的实例讲解
Feb 19 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
mysql 性能的检查和优化方法
2009/06/21 PHP
PHP文件读写操作之文件读取方法详解
2011/01/13 PHP
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
js实现简易ATM功能
2020/10/27 Javascript
Ubuntu下安装PyV8
2016/03/13 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
在求职信中如何凸显个人优势
2013/10/30 职场文书
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
琅琊山导游词
2015/02/05 职场文书
高温慰问简报
2015/07/21 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
简单介绍Python的第三方库yaml
2021/06/18 Python
mysql脏页是什么
2021/07/26 MySQL
你真的会用Mysql的explain吗
2022/03/31 MySQL
MySQL存储过程及语法详解
2022/08/05 MySQL