详解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发送邮件实例
Jan 10 Python
python虚拟环境的安装配置图文教程
Oct 20 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
python实现自动发送邮件
Jun 20 Python
Django forms组件的使用教程
Oct 08 Python
Python正则表达式匹配日期与时间的方法
Jul 07 Python
python mysql断开重连的实现方法
Jul 26 Python
详细介绍pandas的DataFrame的append方法使用
Jul 31 Python
Python操作SQLite数据库过程解析
Sep 02 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
Apr 07 Python
python实现企业微信定时发送文本消息的实例代码
Nov 25 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 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+java实现自动新闻滚动窗口
2006/10/09 PHP
PHP 5.0对象模型深度探索之对象复制
2008/03/27 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
JS删除数组元素的函数介绍
2013/03/27 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
开始着手第一个Django项目
2015/07/15 Python
python 拼接文件路径的方法
2018/10/23 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
Python爬虫开发与项目实战
2020/12/16 Python
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
社区中秋节活动方案
2014/01/29 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2021/08/02 MySQL