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实现linux服务器批量修改密码并生成execl
Apr 22 Python
python分析网页上所有超链接的方法
May 08 Python
Python的Django框架中模板碎片缓存简介
Jul 24 Python
Python退火算法在高次方程的应用
Jul 26 Python
使用 Python 实现简单的 switch/case 语句的方法
Sep 17 Python
python3.7 sys模块的具体使用
Jul 22 Python
python 调试冷知识(小结)
Nov 11 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
Feb 21 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 Python
详解Django中 render() 函数的使用方法
Apr 22 Python
Github 使用python对copilot做些简单使用测试
Apr 14 Python
python​格式化字符串
Apr 20 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
php stripslashes和addslashes的区别
2014/02/03 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
几个javascript操作word的参考代码
2009/10/26 Javascript
JQuery 写的个性导航菜单
2009/12/24 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
Python类中self参数用法详解
2020/02/13 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
国外平面设计第一市场:99designs
2016/10/25 全球购物
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
化妆品促销方案
2014/02/24 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
团组织推优材料
2014/12/29 职场文书
2015年底工作总结范文
2015/05/15 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
2016大学军训心得体会
2016/01/11 职场文书
MySQL窗口函数的具体使用
2021/11/17 MySQL
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python
MySQL数据库表约束讲解
2022/06/21 MySQL