详解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中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
qpython3 读取安卓lastpass Cookies
Jun 19 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
Python实现图片拼接的代码
Jul 02 Python
对python添加模块路径的三种方法总结
Oct 16 Python
详解用python计算阶乘的几种方法
Aug 14 Python
python滑块验证码的破解实现
Nov 10 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
python中wheel的用法整理
Jun 15 Python
Python字典实现伪切片功能
Oct 28 Python
pandas针对excel处理的实现
Jan 15 Python
python爬取豆瓣电影TOP250数据
May 23 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数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
表单提交验证类
2006/07/14 Javascript
动态为事件添加js代码示例
2009/02/15 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
Python中实现的RC4算法
2015/02/14 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
优秀党支部书记事迹材料
2014/05/29 职场文书
销售类求职信
2014/06/13 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis