详解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 25 Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 Python
Python实现Pig Latin小游戏实例代码
Feb 02 Python
使用Django和Python创建Json response的方法
Mar 26 Python
python替换字符串中的子串图文步骤
Jun 19 Python
python django 原生sql 获取数据的例子
Aug 14 Python
django queryset 去重 .distinct()说明
May 19 Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 Python
pycharm中选中一个单词替换所有重复单词的实现方法
Nov 17 Python
python 实现mysql自动增删分区的方法
Apr 01 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 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
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
php GUID生成函数和类
2014/03/10 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
Vue.js单向绑定和双向绑定实例分析
2018/08/14 Javascript
Django如何防止定时任务并发浅析
2019/05/14 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
女大学生毕业找工作的自我评价
2013/10/03 职场文书
公司培训心得体会
2014/01/03 职场文书
采购人员的个人自我评价
2014/01/16 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
大学生自我评价范文
2015/03/03 职场文书
加薪申请报告范本
2015/05/15 职场文书
广播体操比赛主持词
2015/06/29 职场文书
大学入学感言
2015/08/01 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书