Python configparser模块封装及构造配置文件


Posted in Python onAugust 07, 2020

1.configparser模块简介

使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是configParser

configParser解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项

2.看一下configparser生成的配置文件的格式

ini配置文件格式如下:

这里是注释

[log]
log_path = base_dir/OutPut/log/

[image]
img_path = base_dir/OutPut/image/

[report]
report_path = base_dir/OutPut/report/

[test_case]
test_case_path = base_dir/TestData/case.xlsx

3.读取文件内容

import configparser
import os
import sys

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))

if sys.platform == "win32":
  ENV_CONF_DIR = os.path.join(BASE_DIR, 'Common/conf/env_config.ini').replace('/', '\\')
else:
  ENV_CONF_DIR = os.path.join(BASE_DIR, 'Common/conf/env_config.ini')

class Config(object):

  def __init__(self, path):
    self.path = path #配置文件名
    self.cf = configparser.ConfigParser() #创建一个配置文件对象
    self.cf.read(self.path, encoding='utf-8') # 调用配置文件对象的读取方法,并传入一个配置文件名

  def get(self, field, key): # 获取字符串类型的选项值
    result = ""
    try:
      result = self.cf.get(field, key)
    except:
      result = ""
    return result

  def set(self, field, key, value):
    try:
      self.cf.set(field, key, value)
      self.cf.write(open(self.path, 'w'))#创建一个配置文件并将获取到的配置信息使用配置文件对象的写入方法进行写入
    except:
      return False
    return True

def r_config(config_file_path, field, key):
  rf = configparser.ConfigParser()
  try:
    rf.read(config_file_path, encoding='utf-8')
    if sys.platform == "win32":
      result = rf.get(field, key).replace('base_dir', str(BASE_DIR)).replace('/', '\\')
    else:
      result = rf.get(field, key).replace('base_dir', str(BASE_DIR))
  except:
    sys.exit(1)
  return result
def w_config(config_file_path, field, key, value):
  wf = configparser.ConfigParser()
  try:
    wf.read(config_file_path)
    wf.set(field, key, value)
    wf.write(open(config_file_path, 'w'))
  except:
    sys.exit(1)
  return True
if __name__ == '__main__':
  print(r_config(ENV_CONF_DIR, 'log', 'log_path'))
  print(r_config(ENV_CONF_DIR, 'DB', 'database'))

Python configparser模块封装及构造配置文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python脚本对Linux服务器进行监控的教程
Apr 02 Python
浅谈机器学习需要的了解的十大算法
Dec 15 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
Python中__slots__属性介绍与基本使用方法
Sep 05 Python
基于python实现百度翻译功能
May 09 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
Pytorch之contiguous的用法
Dec 31 Python
Pycharm最新激活码2019(推荐)
Dec 31 Python
keras 解决加载lstm+crf模型出错的问题
Jun 10 Python
如何用Django处理gzip数据流
Jan 29 Python
python中sys模块的介绍与实例
Apr 17 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 Python
Python logging模块进行封装实现原理解析
Aug 07 #Python
Python定时任务APScheduler安装及使用解析
Aug 07 #Python
Python如何解除一个装饰器
Aug 07 #Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
Aug 07 #Python
Python实现上下文管理器的方法
Aug 07 #Python
Python 读取位于包中的数据文件
Aug 07 #Python
Python如何绘制日历图和热力图
Aug 07 #Python
You might like
ajax缓存问题解决途径
2006/12/06 PHP
php实现mysql数据库操作类分享
2014/02/14 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
JS获取几种URL地址的方法小结
2014/02/26 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
浅析Python四种数据类型
2018/09/26 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
django列表筛选功能的实现代码
2020/03/27 Python
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
会计专业自荐信
2013/12/02 职场文书
商务考察邀请函范文
2014/01/21 职场文书
学生打架检讨书
2014/02/14 职场文书
员工入职担保书范文
2014/04/01 职场文书
教师求职信范文
2014/05/24 职场文书
电子商务系毕业生自荐信
2014/05/29 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书