详解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标准库之随机数 (math包、random包)介绍
Nov 25 Python
使用Python脚本在Linux下实现部分Bash Shell的教程
Apr 17 Python
Python标准库之Sys模块使用详解
May 23 Python
使用Python脚本将文字转换为图片的实例分享
Aug 29 Python
Python实现字典去除重复的方法示例
Jul 31 Python
利用python如何处理nc数据详解
May 23 Python
Python3编码问题 Unicode utf-8 bytes互转方法
Oct 26 Python
Flask框架学习笔记之模板操作实例详解
Aug 15 Python
python用requests实现http请求代码实例
Oct 31 Python
Python requests上传文件实现步骤
Sep 15 Python
python tqdm实现进度条的示例代码
Nov 10 Python
python3中calendar返回某一时间点实例讲解
Nov 18 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
多数据表共用一个页的新闻发布
2006/10/09 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
python获取糗百图片代码实例
2013/12/18 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
python+opencv实现动态物体识别
2018/01/09 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
学生发电厂实习自我鉴定
2013/09/22 职场文书
工作作风懒散检讨书
2014/10/29 职场文书
刘公岛导游词
2015/02/05 职场文书
行政经理岗位职责
2015/04/15 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
中秋节祝酒词
2015/08/12 职场文书