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对字典进行排序实例
Sep 25 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
Jan 29 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
Apr 26 Python
Python设计模式之组合模式原理与用法实例分析
Jan 11 Python
Python多进程fork()函数详解
Feb 22 Python
Python基础学习之函数方法实例详解
Jun 18 Python
利用pandas合并多个excel的方法示例
Oct 10 Python
pytorch方法测试详解——归一化(BatchNorm2d)
Jan 15 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
Python通过Schema实现数据验证方式
Nov 12 Python
python中altair可视化库实例用法
Jan 26 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实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
基于php实现的验证码小程序
2016/12/13 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
python下10个简单实例代码
2017/11/15 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
struct和class的区别
2015/11/20 面试题
大学社团计划书
2014/05/01 职场文书
安全标语口号
2014/06/09 职场文书
团代会开幕词
2015/01/28 职场文书
大学团日活动总结书
2015/05/11 职场文书
2015年网络管理员工作总结
2015/05/21 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
党员心得体会范文2016
2016/01/23 职场文书