详解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 pickle模块用法实例
Apr 14 Python
剖析Django中模版标签的解析与参数传递
Jul 21 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
火车票抢票python代码公开揭秘!
Mar 08 Python
Python基于pandas实现json格式转换成dataframe的方法
Jun 22 Python
python 借助numpy保存数据为csv格式的实现方法
Jul 04 Python
pandas实现DataFrame显示最大行列,不省略显示实例
Dec 26 Python
如何通过python实现全排列
Feb 11 Python
VScode连接远程服务器上的jupyter notebook的实现
Apr 23 Python
Keras 加载已经训练好的模型进行预测操作
Jun 17 Python
python Paramiko使用示例
Sep 21 Python
Django model class Meta原理解析
Nov 14 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
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
fetch 如何实现请求数据
2018/12/20 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
Python实现股市信息下载的方法
2015/06/15 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
python爬取微信公众号文章的方法
2019/02/26 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
求职者简历中的自我评价
2013/10/20 职场文书
酒店司机岗位职责
2013/12/14 职场文书
校长就职演讲稿
2014/01/06 职场文书
九年级历史教学反思
2014/01/27 职场文书
个人查摆剖析材料
2014/02/04 职场文书
安全承诺书格式
2014/05/21 职场文书
咖啡店创业计划书
2014/08/15 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
企业整改报告范文
2014/11/08 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
初一年级组工作总结
2015/08/12 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书
在Python中如何使用yield
2021/06/07 Python
Python中re模块的元字符使用小结
2022/04/07 Python
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL