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 相关文章推荐
python3大文件解压和基本操作
Dec 15 Python
python spyder中读取txt为图片的方法
Apr 27 Python
Python Dataframe 指定多列去重、求差集的方法
Jul 10 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
python实现文本界面网络聊天室
Dec 12 Python
Python OpenCV实现视频分帧
Jun 01 Python
Django框架自定义模型管理器与元选项用法分析
Jul 22 Python
PYTHON如何读取和写入EXCEL里面的数据
Oct 28 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
Python如何执行精确的浮点数运算
Jul 31 Python
浅析Python的命名空间与作用域
Nov 25 Python
Anaconda配置各版本Pytorch的实现
Aug 07 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
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
php数组的一些常见操作汇总
2011/07/17 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
帝国cms目录结构分享
2015/07/06 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
javascript 鼠标拖动图标技术
2010/02/07 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
Jquery实现顶部弹出框特效
2015/08/08 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
利用node.js实现自动生成前端项目组件的方法详解
2017/07/12 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
使用PDB模式调试Python程序介绍
2015/04/05 Python
python使用mailbox打印电子邮件的方法
2015/04/30 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
python实现局域网内实时通信代码
2019/12/22 Python
pycharm解决关闭flask后依旧可以访问服务的问题
2020/04/03 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
.net软件工程师面试题
2015/03/31 面试题
电子商务自荐书范文
2014/01/04 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
Python实现简单得递归下降Parser
2022/05/02 Python
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL