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 17 Python
python黑魔法之编码转换
Jan 25 Python
Python常用的爬虫技巧总结
Mar 28 Python
视觉直观感受若干常用排序算法
Apr 13 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
Jan 20 Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 Python
Python操作mongodb的9个步骤
Jun 04 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
Jun 05 Python
Selenium alert 弹窗处理的示例代码
Aug 06 Python
在Python 中将类对象序列化为JSON
Apr 06 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
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
php析构函数的简单使用说明
2015/08/24 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
js常用数组操作方法简明总结
2014/06/20 Javascript
详解JavaScript的策略模式编程
2015/06/24 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
使用jQuery.Pin垂直滚动时固定导航
2017/05/24 jQuery
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
Python字符串替换实例分析
2015/05/11 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
python各类经纬度转换的实例代码
2019/08/08 Python
python中的列表与元组的使用
2019/08/08 Python
python系列 文件操作的代码
2019/10/06 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
python自定义函数def的应用详解
2020/06/03 Python
Python with语句用法原理详解
2020/07/03 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
初中三年学生的学习自我评价
2013/11/13 职场文书
物流创业计划书
2014/02/01 职场文书
公司寄语大全
2014/04/10 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
学校运动会通讯稿
2015/07/18 职场文书
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android