Python configparser模块常用方法解析


Posted in Python onMay 22, 2020

ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section), 每个节可以有多个参数(键=值)。使用的配置文件的好处就是不用在程序员写死,可以使程序更灵活。

注意:在python 3 中ConfigParser模块名已更名为configparser

configparser函数常用方法:

读取配置文件:

read(filename) #读取配置文件,直接读取ini文件内容

sections() #获取ini文件内所有的section,以列表形式返回['logging', 'mysql']

options(sections) #获取指定sections下所有options ,以列表形式返回['host', 'port', 'user', 'password']

items(sections) #获取指定section下所有的键值对,[('host', '127.0.0.1'), ('port', '3306'), ('user', 'root'), ('password', '123456')]

get(section, option) #获取section中option的值,返回为string类型
>>>>>获取指定的section下的option <class 'str'> 127.0.0.1

getint(section,option) 返回int类型
getfloat(section, option) 返回float类型
getboolean(section,option) 返回boolen类型

举例如下:

配置文件ini如下:

[logging]
level = 20
path =
server =

[mysql]
host=127.0.0.1
port=3306
user=root
password=123456

注意,也可以使用:替换=

代码如下:

import configparser
from until.file_system import get_init_path

conf = configparser.ConfigParser()
file_path = get_init_path()
print('file_path :',file_path)
conf.read(file_path)

sections = conf.sections()
print('获取配置文件所有的section', sections)

options = conf.options('mysql')
print('获取指定section下所有option', options)


items = conf.items('mysql')
print('获取指定section下所有的键值对', items)


value = conf.get('mysql', 'host')
print('获取指定的section下的option', type(value), value)

运行结果如下:

file_path : /Users/xxx/Desktop/xxx/xxx/xxx.ini
获取配置文件所有的section ['logging', 'mysql']
获取指定section下所有option ['host', 'port', 'user', 'password']
获取指定section下所有的键值对 [('host', '127.0.0.1'), ('port', '3306'), ('user', 'root'), ('password', '123456')]
获取指定的section下的option <class 'str'> 127.0.0.1

综合使用方法:

import configparser
"""
读取配置文件信息
"""

class ConfigParser():

  config_dic = {}
  @classmethod
  def get_config(cls, sector, item):
    value = None
    try:
      value = cls.config_dic[sector][item]
    except KeyError:
      cf = configparser.ConfigParser()
      cf.read('settings.ini', encoding='utf8') #注意setting.ini配置文件的路径
      value = cf.get(sector, item)
      cls.config_dic = value
    finally:
      return value


if __name__ == '__main__':
  con = ConfigParser()
  res = con.get_config('logging', 'level')
  print(res)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 布尔操作实现代码
Mar 23 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
Python实现PS图像调整之对比度调整功能示例
Jan 26 Python
Python多线程编程之多线程加锁操作示例
Sep 06 Python
Python中GIL的使用详解
Oct 03 Python
python代码 输入数字使其反向输出的方法
Dec 22 Python
Python3.8中使用f-strings调试
May 22 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
keras中的卷积层&amp;池化层的用法
May 22 #Python
Keras Convolution1D与Convolution2D区别说明
May 22 #Python
Python pip安装模块提示错误解决方案
May 22 #Python
keras中的backend.clip用法
May 22 #Python
Pycharm修改python路径过程图解
May 22 #Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 #Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
May 22 #Python
You might like
开源SNS系统-ThinkSNS
2008/05/18 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
Python分治法定义与应用实例详解
2017/07/28 Python
Python2随机数列生成器简单实例
2017/09/04 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
Ajax的优点和缺点
2014/11/21 面试题
生日礼品店创业计划书范文
2014/03/21 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
本科毕业论文导师评语
2014/12/31 职场文书
大一学生个人总结
2015/02/15 职场文书
2015年调度员工作总结
2015/04/30 职场文书
css height属性中的calc方法详解
2021/06/03 HTML / CSS
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis