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 socket网络编程步骤详解(socket套接字使用)
Dec 06 Python
Python基于twisted实现简单的web服务器
Sep 29 Python
django反向解析URL和URL命名空间的方法
Jun 05 Python
NumPy 数学函数及代数运算的实现代码
Jul 18 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
May 03 Python
python卸载后再次安装遇到的问题解决
Jul 10 Python
python tornado使用流生成图片的例子
Nov 18 Python
tensorflow的计算图总结
Jan 12 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 Python
Python如何批量生成和调用变量
Nov 21 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
图形数字验证代码
2006/10/09 PHP
php中截取字符串支持utf-8
2007/01/18 PHP
php操作JSON格式数据的实现代码
2011/12/24 PHP
php实现无限级分类
2014/12/24 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
php批量删除操作代码分享
2017/02/26 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
2008/03/22 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
2019/09/16 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
Django中处理出错页面的方法
2015/07/15 Python
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
Python控制Firefox方法总结
2019/06/03 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
员工年终演讲稿
2014/01/03 职场文书
大学生军训感想
2014/02/16 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
《学会看病》教学反思
2016/02/17 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
python自动化之如何利用allure生成测试报告
2021/05/02 Python
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript