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通过wxPython打开一个音频文件并播放的方法
Mar 25 Python
Python实现分割文件及合并文件的方法
Jul 10 Python
深入理解Python中字典的键的使用
Aug 19 Python
python虚拟环境virualenv的安装与使用
Dec 18 Python
Python+matplotlib实现华丽的文本框演示代码
Jan 22 Python
Tensorflow 查看变量的值方法
Jun 14 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
python文件处理fileinput使用方法详解
Jan 02 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
如何使用python记录室友的抖音在线时间
Jun 29 Python
python中lower函数实现方法及用法讲解
Dec 23 Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 18 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英文字符串截取代码分享
2014/07/15 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
jQuery 三击事件实现代码
2013/09/11 Javascript
js中传递特殊字符(+,&amp;)的方法
2014/01/16 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
深入理解React中何时使用箭头函数
2017/08/23 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
python实现求两个字符串的最长公共子串方法
2018/07/20 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
python爬取指定微信公众号文章
2018/12/20 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
wxPython实现画图板
2020/08/27 Python
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
庆七一活动方案
2014/01/25 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
给校长的建议书400字
2014/05/15 职场文书
大专生自我鉴定怎么写
2014/09/16 职场文书
大学迎新生标语
2014/10/06 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python