详解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 Django框架实现自定义表单提交
Mar 25 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
Python做简单的字符串匹配详解
Mar 21 Python
浅谈function(函数)中的动态参数
Apr 30 Python
Python求解任意闭区间的所有素数
Jun 10 Python
Pandas读取并修改excel的示例代码
Feb 17 Python
python基础梳理(一)(推荐)
Apr 06 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
python求解汉诺塔游戏
Jul 09 Python
彻底搞懂python 迭代器和生成器
Sep 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学习教程之第2天
2008/06/15 PHP
MySQL连接数超过限制的解决方法
2011/07/17 PHP
探讨PHP中OO之静态关键字以及类常量的详解
2013/06/07 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
Jquery 扩展方法
2010/05/06 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
Seajs的学习笔记
2014/03/04 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
如何编写jquery插件
2017/03/29 jQuery
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
利用python求相邻数的方法示例
2017/08/18 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
如何通过python检查文件是否被占用
2020/12/18 Python
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
信息专业大学生自我评价分享
2014/01/17 职场文书
商场促销活动总结
2014/07/10 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
邓小平文选读书笔记
2015/06/29 职场文书
改进工作作风心得体会
2016/01/23 职场文书
Linux安装apache服务器的配置过程
2021/11/27 Servers