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实现bitmap数据结构详解
Feb 17 Python
Python生成随机密码
Mar 10 Python
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
Python使用pylab库实现绘制直方图功能示例
Jun 01 Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
Aug 12 Python
PyTorch预训练的实现
Sep 18 Python
Python二元赋值实用技巧解析
Oct 25 Python
pytorch 修改预训练model实例
Jan 18 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
Mar 23 Python
python 线程的五个状态
Sep 22 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获取网卡地址的代码
2008/04/09 PHP
PHP flock 文件锁详细介绍
2012/12/29 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
2018/11/06 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
python小项目之五子棋游戏
2019/12/26 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
四年的个人工作自我评价
2013/12/10 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书