python生成配置文件config_Python configparser模块封装及构造配置文件

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模块封装及构造配置文件

本文地址: http://www.cppcns.com/jiaoben/python/331696.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴恩达【深度学习工程师】 04.卷积神经网络 第四周特殊应用(2)神经风格转换...

该笔记介绍的是《卷积神经网络》系列第四周:特殊应用(2)神经风格转换 主要内容有: 1.神经风格转换 2.卷积网络隐藏单元可视化显示 3.神经风格转换代价函数 4.内容代价函数 5.风格代价函数 *6.数据从一维到三维的推广 神经风格转换 把C(conten…

php grepmatch,linux最快的文本搜索神器ripgrep(grep的最好代替者)

前言说到文本搜索工具,大家一定会知道 grep, 它是 linux 最有用并最常用的工具之一。但如果要再一个大的工程项目中搜索某个关键词,大家也一定知道它比较耗时。所以就有了很多替代工具,之前最出名的是 Ack,Ag而最近又有了新的替代…

蒲慕明:《大脑之美》序言,脑探索的起点

来源:神经现实本文经授权摘自《大脑之美》序言作者:蒲慕明现代神经科学起源于十九世纪末期;圣地亚哥拉蒙-卡哈尔(Santiago Ramn y)的神经解剖学研究和他提出的神经元理论是主要的起点。一百多年来,神经科学…

pycharm python 模板配置_pycharm设置python脚本模板

PyCharmPyCharm是一个有名的Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以…

slow log php,善用php-fpm的慢执行日志slow log,分析php性能问题

众所周知,mysql有slow query log,根据慢查询日志,我们可以知道那些sql语句有性能问题。作为mysql的好搭档,php也有这样的功能。如果你使用php-fpm来管理php的话,你可以通过如下选项开启。PHP 5.3.3 之前设置如下&#…

04-numpy-笔记-transpose

借鉴代码https://blog.csdn.net/xiongchengluo1129/article/details/79017142 吐槽一下CSDN的垃圾广告。。 这是转置,所以1维(向量)和2维(矩阵)的转置的意义很直观,就是数学上学的。 难的就是超过三维的张量…

量子信息技术研究现状与未来——郭光灿

来源: 中国科学杂志社量子信息技术是量子力学与信息科学融合的新兴交叉学科, 它的诞生标志着人类社会将从经典技术迈进到量子技术的新时代, 本文将阐述量子信息技术的研究现状与未来. 文中描绘了量子技术发展远景, 即筑建各种类型的量子网络, 包括量子云计算网络、分…

springboot需要tomcat服务器吗_嵌入式 Tomcat AJP 协议对 SpringBoot 应用的影响

前言2020 年 1 月 6 日,国家信息安全漏洞共享平台(CNVD)收录了由北京长亭科技有限公司发现并报送的 Apache Tomcat 文件包含漏洞。Tomcat AJP 协议由于存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器 webapp 下…

php session 前缀,PHP文件包含--session

利用条件:session文件路径已知,且其中内容部分可控。php的session文件的保存路径可以在phpinfo的session.save_path看到。session 的文件名格式为 sess_[phpsessid],而 sessionid 在发送的请求的 cookie 字段中也可以看到。实例:“…

第一阶段 03Java的基本数据类型

03Java的基本数据类型 程序 数据 逻辑 基本数据类型:4类8种 (1)整型类型 byte   1B   8位   -128到127 short   2B   16位  -2^15到(2^15)-1 int    4B  32位  -2^31到(2^31)-1 long   8B  64位  -2^63到(2^6…

大脑与数学——利用代数拓扑研究模拟大脑 第一部分

来源:遇见数学蓝脑计划(Blue Brain Project)是尝试利用分子层级的哺乳类脑部逆向工程建立一个电脑模拟脑。这里模拟并不仅是包括人工神经网络模型,也包括生物过程的真实神经元模型,和一个经验重建模型连接组。该计划希…

spring cloud每次修改必须重新打包_Java面试系列spring相关

Spring中的Bean是线程安全的吗?Spring 中的 bean 默认都是单例的,所有线程都共享一个单例实例Bean,因此是存在资源的竞争,是线程不安全的。但是spring中大部分bean都是在方法内部操作,例如:Controller、Ser…

day20 派生属性和方法,钻石继承

class Animal:人和狗都是动物,所以创造一个Animal基类def __init__(self, name, aggressivity, life_value):self.name name # 人和狗都有自己的昵称;self.aggressivity aggressivity # 人和狗都有自己的攻击力;self.life_value life_value # 人和狗都有自己的…

谈谈实现小样本学习的两条路径

来源:混沌巡洋舰小样本学习是当下机器学习界的一个核心课题。大数据是当下深度学习的咽喉,面临收集成本昂贵,甚至根本无法采集的弊端, 小样本学习的实践价值不言而喻。对于众多产业来说, 真正能够收集到大量样本的是极…

python怎么处理文字_python 处理给规范的文字

你要处理的大多数文字都是比较干净、格式规范的。格式规范的文字通常可以满足一些需求,不过究竟什么是“格式混乱”,什么算“格式规范”,确实因人而异。 通常,格式规范的文字具有以下特点:使用一个标准字体(不包含手写体、草书,或者十分“花哨的”字体) • 虽然被复印或拍照,字…

php自定义商品属性,php – 可变产品属性:自定义每个显示的单选按钮文本值

以下是您重新访问的代码,该代码仅显示“Tab”属性单选按钮自定义显示的文本a< span>基于属性slug和$term_slug的组合,使用不同的类值标记.因此,您可以将一些CSS样式颜色应用于每个单选按钮显示的’pa_tab’属性的自定义文本,将这些CSS规则添加到您的活动主题style.css ……

腾讯 深圳 25928-PHP开发工程师(深圳)

工作地点&#xff1a;深圳职位类别&#xff1a;技术类招聘人数&#xff1a;1人 工作职责&#xff1a;负责游戏研运体系流程工具及相关产品的开发、维护&#xff1b;参与支撑系统的需求分析、设计、编码&#xff1b;承担外包开发成员技术导师&#xff0c;解决技术难点&#xff0…

什么是物联网?常见IoT协议最全讲解

作者&#xff1a;付强来源&#xff1a;IoT物联网技术&#xff08;ID&#xff1a;IoT-Tech-Expo&#xff09;01 什么是物联网?物联网&#xff08;Internet of Things&#xff09;这个概念读者应该不会陌生。物联网的概念最早于1999年被提出来&#xff0c;曾被称为继计算机、互联…

is在python中是什么意思_Python 中 is 与 == 有啥区别?

在 Python 中&#xff0c;比较两个对象(变量)是否相等&#xff0c;可以用 “is” 和 “” 操作&#xff0c;但它俩有什么区别&#xff1f;什么时候用 “is”&#xff0c;什么时候用 “” &#xff1f;在面试时&#xff0c;发现不少候选人很难把这两者完全说清楚&#xff0c;因此…

java下发命令nbiot,NB物联网之天翼物联(3)——编解码插件上传规则细解(java开发物联网)...

前言电信的编解码插件本意上是可以让我们的开发更加灵活&#xff0c;但是你好歹把文档写明白啊。。。同时在正常的生产中我们的产品不可能只使用电信的模块&#xff0c;有时甚至是客户要求使用移动还是电信的模块&#xff0c;所以兼容性给我们的体验非常直观&#xff01;我们先…