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发送邮件附件以定时备份MySQL的教程
Apr 25 Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
Python3中_(下划线)和__(双下划线)的用途和区别
Apr 26 Python
python中的Elasticsearch操作汇总
Oct 30 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
pytorch之ImageFolder使用详解
Jan 06 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
python 线程的五个状态
Sep 22 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 Python
python Django框架快速入门教程(后台管理)
Jul 21 Python
python库sklearn常用操作
Aug 23 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入门学习笔记之一
2010/10/12 PHP
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
javascript数组的扩展实现代码集合
2008/06/01 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
Python中用max()方法求最大值的介绍
2015/05/15 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
Python中断多重循环的思路总结
2019/10/04 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
如何写好升职自荐信
2014/01/06 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
企业晚会策划方案
2014/05/29 职场文书
迎新晚会策划方案
2014/06/13 职场文书
车辆委托书范本
2014/10/05 职场文书
优秀班集体申报材料
2014/12/25 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript