Python基础之读取基础配置模块封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础之读取基础配置模块封装相关的知识,希望对你有一定的参考价值。

  引言

  python读取配置文件中的数据在前面的Python 读取配置文件常用几种方式文章中已经介绍,这里主要介绍对.ini文件的常用封装方法以及使用。

  设计思路

  废话也不多说,画个操作,代码流。

 

 

 

  代码实现

__author__ = \'Leo\'


from configparser import ConfigParser
import os
from common import Log


class Config(object):
    """
    配置文件
    """
    """
    :常量设置
    :读取ini
    """
    # titles:
    TITLE_TEST = \'test\'
    TITLE_RELEASE = \'online_release\'
    TITLE_EMAIL = \'mail\'

    # values:
    # [test\\release]
    VALUE_TESTER = \'tester\'
    VALUE_ENVIRONMENT = \'environment\'
    VALUE_VERSION_CODE = \'versionCode\'
    VALUE_HOST = \'host\'
    VALUE_PATH = \'path\'
    VALUE_DATA = \'data\'

    # [mail]
    VALUE_SMTP_SERVER = \'smtpserver\'
    VALUE_SENDER = \'sender\'
    VALUE_RECEIVER = \'receiver\'
    VALUE_USERNAME = \'username\'
    VALUE_PASSWORD = \'password\'

    # 获取当前文件所在的根目录
    path_root = str(os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)))

    def __init__(self):
        """
        初始化
        """
        self.config = ConfigParser()
        self.logger = Log.MyLog()
        self.conf_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), \'config.ini\')

        if not os.path.exists(self.conf_path):
            raise FileNotFoundError("配置文件不存在!")

        # 读取配置文件
        self.config.read(self.conf_path,encoding=\'utf8\')




        # 测试环境配置
        self.tester_test = self.get_conf(Config.TITLE_TEST,Config.VALUE_TESTER)
        self.environment_test = self.get_conf(Config.TITLE_TEST,Config.VALUE_ENVIRONMENT)
        self.versionCode_test = self.get_conf(Config.TITLE_TEST,Config.VALUE_VERSION_CODE)
        self.host_test = self.get_conf(Config.TITLE_TEST,Config.VALUE_HOST)
        self.path_test = self.get_conf(Config.TITLE_TEST,Config.VALUE_PATH)
        self.data_test = self.get_conf(Config.TITLE_TEST,Config.VALUE_DATA)


        # 邮件配置
        self.smtpserver = self.get_conf(Config.TITLE_EMAIL,Config.VALUE_SMTP_SERVER)
        self.sender = self.get_conf(Config.TITLE_EMAIL,Config.VALUE_SENDER)
        self.receiver = self.get_conf(Config.TITLE_EMAIL,Config.VALUE_RECEIVER)
        self.username = self.get_conf(Config.TITLE_EMAIL,Config.VALUE_USERNAME)
        self.password = self.get_conf(Config.TITLE_EMAIL,Config.VALUE_PASSWORD)


    def get_conf(self, title, value):
        """
        配置文件读取
        :param title:
        :param value:
        :return:
        """
        return self.config.get(title, value)

    def set_conf(self, title, value, text):
        """
        配置文件修改
        :param title:
        :param value:
        :param text:
        :return:
        """
        self.config.set(title, value, text)
        with open(self.conf_path, "w+") as f:
            return self.config.write(f)

    def add_conf(self, title):
        """
        配置文件添加
        :param title:
        :return:
        """
        self.config.add_section(title)
        with open(self.conf_path, "w+") as f:
            return self.config.write(f)


if __name__ == \'__main__\':
    print(Config().tester_test)
    print(Config().environment_test)
    print(Config().versionCode_test)
    print(Config().host_test)
    print(Config().data_test)
    print(Config().path_test)

  

  ini配置文件信息

; 接口测试框架配置文件

; titles
[test]
# test配置
tester = 全栈测试开发日记
environment = test
versionCode = v1.0
host = www.***.com
path = /
data = {\'a\':1,\'b\':2}

[mail]
#发送邮件信息
smtpserver = smtp.163.com
sender = test1@163.com
receiver = test2@163.com
username = test1@163.com
password = 12345678

  文件结构:

 

 

  运行结果

全栈测试开发日记
test
v1.0
www.***.com
{\'a\':1,\'b\':2}
/

Process finished with exit code 0

  

  总结

  方法基本上就是这样,具体根据自己业务需要进行设计。

  另外,对测试开发,自动化测试,全栈测试相关技术感兴趣的朋友,可以加入到群里学习和探索交流,进群方式,扫下方二维码。

 

以上是关于Python基础之读取基础配置模块封装的主要内容,如果未能解决你的问题,请参考以下文章

python之基础篇——模块与包

Python基础--实战二:封装配置文件

基础入门_Python-模块和包.深入Celery之应用配置/独立模块配置实践?

Python3 关于excel 文件格式xls之读取写入和追加

python基础之封装

Python基础之文件目录操作