详解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的正则表达式re模块的常用方法
Mar 09 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
May 02 Python
django批量导入xml数据
Oct 16 Python
python3学生名片管理v2.0版
Nov 29 Python
Python制作exe文件简单流程
Jan 24 Python
利用Python实现微信找房机器人实例教程
Mar 10 Python
Python数据库小程序源代码
Sep 15 Python
Python 面向对象部分知识点小结
Mar 09 Python
Python生成器常见问题及解决方案
Mar 21 Python
Python flask路由间传递变量实例详解
Jun 03 Python
OpenCV+python实现实时目标检测功能
Jun 24 Python
pycharm 实现光标快速移动到括号外或行尾的操作
Feb 05 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
PHP类继承 extends使用介绍
2014/01/14 PHP
php获取目标函数执行时间示例
2014/03/04 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
python中的函数用法入门教程
2014/09/02 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
python 中random模块的常用方法总结
2017/07/08 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
python如何运行js语句
2020/09/09 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
python 将Excel转Word的示例
2021/03/02 Python
包装类的功能、种类、常用方法
2012/01/27 面试题
信息专业毕业生五年职业规划参考
2014/02/06 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
工厂搬迁方案
2014/05/11 职场文书
2014年度个人总结范文
2015/03/09 职场文书
民事二审代理词
2015/05/25 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python
MySQL系列之八 MySQL服务器变量
2021/07/02 MySQL
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS