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实现的监测服务器硬盘使用率脚本分享
Nov 07 Python
Python复制文件操作实例详解
Nov 10 Python
Python+PIL实现支付宝AR红包
Feb 09 Python
Python3导入自定义模块的三种方法详解
Apr 13 Python
python匹配两个短语之间的字符实例
Dec 25 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
python将字符串转变成dict格式的实现
Nov 18 Python
Python Tornado之跨域请求与Options请求方式
Mar 28 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
Python3基于print打印带颜色字符串
Jul 06 Python
关于 Python json中load和loads区别
Nov 07 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
第八节--访问方式
2006/11/16 PHP
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
PHP递归创建多级目录
2015/11/05 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python性能提升之延迟初始化
2016/12/04 Python
python3中获取文件当前绝对路径的两种方法
2018/04/26 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
python时间日期操作方法实例小结
2020/02/06 Python
python如何进行矩阵运算
2020/06/05 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
意大利网上药房:Farmacia 33
2020/01/27 全球购物
狼和鹿教学反思
2014/02/05 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
企业文化标语口号
2014/06/09 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
初中家长评语大全
2014/12/26 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
小学思想品德教学反思
2016/02/24 职场文书
合作意向书怎么写
2019/06/24 职场文书