• python接口自动化之ConfigParser配置文件的使用


    前言

    小伙伴们好久不见呀,笔者最近因为工作原因,一直没有什么时间来给大家带来新的文章,今天呢笔者想和大家来唠唠python接口自动化中 ConfigParser配置文件的使用,废话笔者就不多说了,直接看正文。

     

    一、什么是配置文件

    目前我们使用的绝大多数计算机程序,无论是办公软件,浏览器,甚至游戏、视频都是通过菜单界面系统配置的,它几乎成了我们使用机器的默认方式。而在python中,也有这样的一个配置模块可以把代码可配置化。

    这里的配置文件不同于我们平常所见的可视化的菜单界面,它是像代码形式的,如下示例:

    ​ 二、为什么要做配置文件?

    让代码和配置都变成可模块化可配置化,提高代码的重用性,那什么时候把它变成可配置化呢?多处地方都用到一个参数时,经常会变化的参数等,都可以可配置化,我们只需要在配置文件中进行修改即可,不需要在代码中一处处的重复修改。

    ​ Python提供了一个ConfigParser模块,它实现了一种基本的配置文件解析器语言,该语言提供的结构类似于.ini文件中的结构。常见的配置文件格式有.ini.conf.cfg,配置文件由两个文件对象组成:section和option,一个配置文件里可以包含一个或多个节(section),每个节可以有多个option(键=值),如上图所标示。

    三、读取配置文件

    它与file文件一样,需要先打开才能进行读取操作,常用方法如下:

    • read(filename):直接读取配置文件内容
    • sections():以列表的形式返回所有section
    • options(section):得到对应section下的所有option
    • items(section):得到对应section下的所有键值对
    • get(section,option):得到对应的section中的option的值,并以string的类型返回
    • getint(section,option):得到对应的section中的option的值,并以int的类型返回

    ​ 以上图中的conf.ini为例进行读取操作:

    1. from configparser import ConfigParser
    2. # 创建一个操作配置文件的对象(文件解析对象)
    3. conf = ConfigParser()
    4. # 读取配置文件
    5. conf.read("conf.ini", encoding="utf8")
    6. # 获取所有section
    7. res2 = conf.sections()
    8. print("这是res2:{}\n".format(res2))
    9. # 获取对应section下的option
    10. res3 = conf.options("logging")
    11. print("这是res3:{}\n".format(res3))
    12. # 获取对应section下的所有键值对
    13. res4 = conf.items("logging")
    14. print("这是res4:{}\n".format(res4))
    15. # get方法:读取出来的内容,都是字符串
    16. res5 = conf.get("logging", "level")
    17. print("这是res5:{}".format(res5), type(res5))
    18. # getint方法:读取出来的内容,都是int类型
    19. res6 = conf.getint("mysql", "port")
    20. print("\n这是res6:{}".format(res6), type(res6))

    ​ 运行结果:

    1. C:\software\python\python.exe D:/learn/test.py
    2. 这是res2:['logging', 'mysql']
    3. 这是res3:['level', 'f_level', 's_level']
    4. 这是res4:[('level', 'DEBUG'), ('f_level', 'DEBUG'), ('s_level', 'ERROR')]
    5. 这是res5:DEBUG <class 'str'>
    6. 这是res6:3306 <class 'int'>
    7. Process finished with exit code 0

    ​ 除了可以读取str、int类型以外,还支持float、boolean,这里就不再举例。

    ​  小知识:

    • 键值对可用=也可用:进行分隔
    • section名称是区分大小写的,而option不区分
    • 键值对中,首尾若有空白符会被去掉
    • 配置文件中也可以写入注释,注释以#或者;为前缀

    四、写入配置文件

    ​ 基本的写入方法如下:

    • add_section(section) :添加一个新的section
    • set( section, option, value):对section中的option进行设置,需要调用write将内容写入配置文件
    1. from configparser import ConfigParser
    2. # 创建一个操作配置文件的对象(文件解析对象)
    3. conf = ConfigParser()
    4. conf.add_section('test')
    5. conf.set('test', 'name', 'Amy')
    6. conf.write(open('conf.ini', "a", encoding="utf-8"))

    ​ 运行后查看conf.ini文件里面的内容:

    五、ConfigParser的封装

    ​ 凡是需要重复使用的,我们都可以对它进行二次封装,写成我们自己的版本,还可以在封装过程中加入我们想要的内容,使用的时候直接调用即可。

    1. from configparser import ConfigParser
    2. class MyConf:
    3. def __init__(self, filename, encoding="utf8"):
    4. self.filename = filename
    5. self.encoding = encoding
    6. self.conf = ConfigParser()
    7. self.conf.read(filename, encoding)
    8. def get_str(self, section, option):
    9. return self.conf.get(section, option)
    10. def get_int(self, section, option):
    11. return self.conf.getint(section, option)
    12. def get_float(self, section, option):
    13. pass
    14. def get_bool(self, section, option):
    15. pass
    16. def write_data(self, section, option, value):
    17. pass

    总结

    今天的文章就到这里哟,喜欢的小伙伴记得点赞收藏评论加关注哟,为了庆祝笔者终于可以休息了,我给各位小伙伴准备了一份全套的软件测试学习资料,由于平台有限制所以资料不能放上来,有需要的可以私我关键字“资料”哈。

     

  • 相关阅读:
    Linux XWindow的安装和配置
    为什么密码云服务平台是云时代的必然之选?
    新手入门深度学习 | 3-6:优化器optimizers
    筑基 AIGC 智算 OS 助力大模型高效释放算力
    海豚调度器集群安装DolphinScheduler(3.1.8)
    nginx 的进程建通信机制-共享内存/channel/信号
    设备间同步的电子书阅读器--查找未果
    Objective-C 基础教程第三章,面向对象编程基础知识
    Vue:第一个Vue程序和vue-router路由
    有了这个技术,再也不为水浸事件发愁啦!
  • 原文地址:https://blog.csdn.net/ifling99/article/details/126130914