手把手教你用Python编写配置脚本引擎(福利篇)

news/2024/10/30 17:23:35/

版权声明:原创不易,本文禁止抄袭、转载需附上链接,侵权必究!

目录

    • 一、配置信息写入
    • 二、读取配置信息
    • 三、修改配置信息
    • 四、配置引擎总结
    • 五、作者Info

一、配置信息写入

配置信息初始化
定义配置引擎类和初始化方法,其中有两个属性,配置实例对象及配置文件路径:

import configparserclass ConfigEngine(object):def __init__(self, config_path):self.cf = configparser.ConfigParser()self.config_path = config_path

将配置信息写入到配置文件中,该方法有三个形参,category(配置信息类别),name(配置字段名称),value(配置字段值):

def write_to_config(self, category, name, value):self.cf.add_section(category)self.cf.set(category, name, value)self.cf.write(open(self.config_path, "w+"))

比如现在我们要将邮箱的配置信息写入到配置文件config.ini中,以阿里邮箱为例,可以这样调用:

if __name__ == '__main__':config_path = 'config.ini'config_engine = ConfigEngine(config_path)config_engine.write_to_config('EMAIL', 'host', 'smtp.qiye.aliyun.com')config_engine.write_to_config('EMAIL', 'port ', '25')………………

查看配置文件信息:
在这里插入图片描述

二、读取配置信息

读取配置文件config.ini中的配置信息,该方法有两个参数,category(配置信息类别),name(配置字段名称):

def get_value(self, category, name):try:self.cf.read(self.config_path, encoding='gbk')return self.cf.get(category, name)except KeyError:print('读取失败!')return 'error'

调用方式和上面是相似的,传入对应参数就行

三、修改配置信息

修改配置文件config.ini中的配置信息,该方法的参数和配置信息写入方法的参数是相同的,没有add_section()方法,增加了一个read()方法:

def modify_config(self, category, name, value):self.cf.read(self.config_path)self.cf.set(category, name, value)self.cf.write(open(self.config_path, "w+"))

调用方式和上面是一样的,传入对应参数就行

四、配置引擎总结

本篇文章讲述了如何使用库configparser编写配置脚本引擎,可以将比较重要的配置数据分离,提高编程效率和减小后期维护

当配置信息改变时,比如某个客户的邮箱信息改变了,配置数据比较少时,我们完全可以手动打开配置文件更改,但是当数据量非常大时,我们可能需要调用脚本去更改配置信息

其实这个配置脚本引擎就是做了一层封装,我们只需要编写最少的代码,导入这个配置引擎包,调用相应方法,传入参数即可实现需求的功能,简单且方便,可以当成依赖包使用,与邮箱脚本引擎等配套使用

五、作者Info

Author:小鸿的摸鱼日常,Goal:让编程更有趣!

专注于算法、爬虫,网站,游戏开发,数据分析、自然语言处理,AI等,期待你的关注,让我们一起成长、一起Coding!

版权说明:本文禁止抄袭、转载 ,侵权必究!


http://www.ppmy.cn/news/78478.html

相关文章

Yet another ProblemHint 1

You are given an array aa of nn integers a1,a2,a3,…,an. You have to answer qq independent queries, each consisting of two integers ll and rr. Consider the subarray a[l:r]a[l:r] [al,al1,…,ar][al,al1,…,ar]. You can apply the following operation to the …

【医学图像】图像分割系列.2 (diffusion)

介绍几篇使用diffusion来实现医学图像分割的论文:DARL(ICLR2023),MedSegDiff(MIDL2023)& MedSegDiff-V2(arXiv2023),ImgX-DiffSeg(arXiv2023)…

try语句异常处理

文章目录 try语句异常的所有基类try语句的标准语法实战代码 try语句 ​ 使用try语句主要是为了进行异常的捕捉处理,异常在python也有几个基类 异常的所有基类 异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行Exc…

QT多线程(主动挂起线程)

文章目录 前言一、线程的挂起态二、QWaitCondition三、示例代码总结 前言 本篇文章来讲解一下QT中如何主动挂起线程,在不想让一个线程运行的时候我们应该如何让线程挂起呢?我们都知道使用sleep函数可以让线程挂起一段时间,但是一段时间过后线…

Java学习路线(10)——多态与内部类

一、多态 概念: 同类型对象执行同一个行为,表现出不同行为特性。 常见形式: 父类类型 对象名称 new 子类构造器; 接口 对象名称 new 实现类构造器;多态中的成员访问特点 方法调用: 编译看父类,运行看右边。&…

面试问题汇总

最近面试了几家公司,对问到的问题汇总一下。 Unity 是左手坐标系还是右手坐标系? 这个题靠记忆答的答错了,是左手坐标系。 大拇指指的方向是X轴,食指指的方向是Y轴方向,中指指的方向Z轴方向。 场景中游戏物体Activity为false,G…

flask restful项目开发结尾必看!!!

为了实现restful风格的一些增删查改需要安装的第三方库太繁杂了所以: 建议放弃flask框架 这个框架自带的功能太少了,实现一些简单的功能都要自主安装很多第三方库,而且不同版本的第三方库还有兼容问题 啧啧啧! 后续也不在更新限流和鉴权认证了(除非很闲没事做) 最近更新这几篇…

在Kaggle上使用Stable Diffusion进行AI绘图

前言 因为使用Stable Diffusion进行AI绘图需要GPU,这让其应用得到了限制本文介绍如何在Kaggle中部署Stable Diffusion,并使用免费的P100 GPU进行推理(每周可免费使用30小时),部署好后可以在任意移动端使用。本项目在s…