详解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实现全角半角转换的方法
Aug 18 Python
Python中datetime常用时间处理方法
Jun 15 Python
Python实现的购物车功能示例
Feb 11 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
Django框架会话技术实例分析【Cookie与Session】
May 24 Python
python占位符输入方式实例
May 27 Python
python gdal安装与简单使用
Aug 01 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
python Timer 类使用介绍
Dec 28 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 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的特殊设置
2006/10/09 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
vue如何截取字符串
2019/05/06 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
vue 路由子组件created和mounted不起作用的解决方法
2019/11/05 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
[01:00:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第三场 1月10日
2021/03/11 DOTA
怎样使用Python脚本日志功能
2016/08/14 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
局域网定义和特性
2016/01/23 面试题
Python文件操作的面试题
2013/06/22 面试题
在职证明书模板
2015/06/15 职场文书
苦儿流浪记读书笔记
2015/07/01 职场文书