详解Python读取配置文件模块ConfigParser


Posted in Python onMay 11, 2017

1,ConfigParser模块简介

假设有如下配置文件,需要在Pyhton程序中读取

$ cat config.ini
[db]
db_port = 3306
db_user = root
db_host = 127.0.0.1
db_pass = xgmtest
 
[SectionOne]
Status: Single
Name: Derek
Value: Yes
Age: 30
Single: True
 
[SectionTwo]
FavoriteColor = Green
[SectionThree]
FamilyName: Johnson
 
[Others]
Route: 66

如何在Python中读取呢

>>> import ConfigParser
>>> Config = ConfigParser.ConfigParser()
>>> Config
<ConfigParser.ConfigParser instance at 0x00BA9B20>
>>> Config.read("config.ini")
['config.ini']
>>> Config.sections()
['db', 'Others', 'SectionThree', 'SectionOne', 'SectionTwo']
>>> Config.get("db", "db_host")
'127.0.0.1'
>>> Config.getint("db", "db_port")
3306

2,ConfigParser模块的基本方法介绍

读取配置文件

read(filename) 直接读取ini文件内容
sections() 得到所有的section,并以列表的形式返回
options(section) 得到该section的所有option
items(section) 得到该section的所有键值对
get(section,option) 得到section中option的值,返回为string类型
getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数

写入配置文件

add_section(section) 添加一个新的section
set(section, option, value) 对section中的option进行设置,需要调用write将内容写入配置文件

3,特殊情况

如果有以下配置文件

[zone1]
192.168.10.13
192.168.10.15
192.168.10.16
192.168.10.17
[zone2]
192.168.11.13
192.168.11.14
192.168.11.15
[zone3]
192.168.12.13
192.168.12.14
192.168.12.15

这种配置文件,每一个section里面,并不是健值对的形式,此时再调用ConfigParser读取便会报出如下错误:

ConfigParser.ParsingError: File contains parsing errors: hosts.txt

所以正确的调用方法为:

#!/usr/bin/python
 
import ConfigParser
 
config = ConfigParser.ConfigParser(allow_no_value=True)
config.read("hosts.txt")
print config.items("zone2")

运行结果:

$ ./a.py 
[('10.189.22.21', None), ('10.189.22.22', None), ('10.189.22.23', None)]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python k-近邻算法实例分享
Jun 11 Python
python通过pil模块获得图片exif信息的方法
Mar 16 Python
Python实现将文本生成二维码的方法示例
Jul 18 Python
Python实现简易Web爬虫详解
Jan 03 Python
Python多线程编程之多线程加锁操作示例
Sep 06 Python
python基于socket进行端口转发实现后门隐藏的示例
Jul 25 Python
Python调用C语言的实现
Jul 26 Python
浅谈TensorFlow之稀疏张量表示
Jun 30 Python
python opencv角点检测连线功能的实现代码
Nov 24 Python
Python 实现集合Set的示例
Dec 21 Python
python 如何用terminal输入参数
May 25 Python
解决Python中的modf()函数取小数部分不准确问题
May 28 Python
python如何获取服务器硬件信息
May 11 #Python
浅谈Python基础之I/O模型
May 11 #Python
老生常谈Python进阶之装饰器
May 11 #Python
python 第三方库的安装及pip的使用详解
May 11 #Python
插入排序_Python与PHP的实现版(推荐)
May 11 #Python
Python实现计算两个时间之间相差天数的方法
May 10 #Python
Python开发的实用计算器完整实例
May 10 #Python
You might like
关于Intype一些小问题的解决办法
2008/03/28 PHP
php5数字型字符串加解密代码
2008/04/24 PHP
sphinx增量索引的一个问题
2011/06/14 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
php中使用websocket详解
2016/09/23 PHP
详解php中的implements 使用
2017/06/13 PHP
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
对angularJs中ng-style动态改变样式的实例讲解
2018/09/30 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
python得到电脑的开机时间方法
2018/10/15 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
Django Rest framework权限的详细用法
2019/07/25 Python
python能否java成为主流语言吗
2020/06/22 Python
python 递归相关知识总结
2021/03/03 Python
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
2014年最新学习全国两会精神心得
2014/03/17 职场文书
国际贸易专业求职信
2014/06/04 职场文书
卖房协议书样本
2014/10/30 职场文书
《夸父追日》教学反思
2016/02/20 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python