前言:目前我们使用的绝大多数计算机程序,无论是办公软件,浏览器,甚至游戏、视频都是通过菜单界面系统配置的,它几乎成了我们使用机器的默认方式。而在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为例进行读取操作:

from configparser import ConfigParser

# 创建一个操作配置文件的对象(文件解析对象)

conf = ConfigParser()

# 读取配置文件

conf.read("conf.ini", encoding="utf8")

# 获取所有section

res2 = conf.sections()

print("这是res2:{}\n".format(res2))

# 获取对应section下的option

res3 = conf.options("logging")

print("这是res3:{}\n".format(res3))

# 获取对应section下的所有键值对

res4 = conf.items("logging")

print("这是res4:{}\n".format(res4))

# get方法:读取出来的内容,都是字符串

res5 = conf.get("logging", "level")

print("这是res5:{}".format(res5), type(res5))

# getint方法:读取出来的内容,都是int类型

res6 = conf.getint("mysql", "port")

print("\n这是res6:{}".format(res6), type(res6))

​运行结果:

C:\software\python\python.exe D:/learn/test.py

这是res2:['logging', 'mysql']

这是res3:['level', 'f_level', 's_level']

这是res4:[('level', 'DEBUG'), ('f_level', 'DEBUG'), ('s_level', 'ERROR')]

这是res5:DEBUG

这是res6:3306

Process finished with exit code 0

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

python自动配置文件_【python接口自动化】- ConfigParser配置文件的使用相关推荐

  1. python 接口测试 如何写配置文件_python接口自动化测试 - configparser配置文件解析器详细使用...

    configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...

  2. python绕过验证码登录_python接口自动化(十三)--cookie绕过验证码登录(详解)...

    简介 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接).获取不到也没关系,可以通过添加cookie的方式绕过验证码.(注意:并不是所有的 ...

  3. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(二)

    可以参考 python+requests接口自动化完整项目设计源码(一)https://www.cnblogs.com/111testing/p/9612671.html 原文地址https://ww ...

  4. python自动扫雷_利用Python实现自动扫雷

    自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式. 一.准备工作 我的版本是 python 3.6.1 python的第三方库: w ...

  5. python自动控制程序_巧用 python 脚本控制你的C程序

    python是一门艺术语言,除了开发桌面程序,还能够开发网络应用,数据库应用,还可以代替shell编写一些的实用脚本,本文主要讲述了如何利用 python 程序控制你的 C 程序的行为. 作为例子,本 ...

  6. 如何利用python自动办公-用Python自动办公,做职场高手全16讲(无需程序员基础) | 樱花庄...

    Python编程最近很受欢迎.这不是一个常见的说"生命是短暂的,我使用python".这是有意义的.一个是比其他语言更容易学习,,另一个是伟大的功能,可以爬行和编写工具.樱花还计划 ...

  7. python 病毒 基因_#Python#提取基因对应的蛋白质名

    提取基因对应的蛋白质官方名 最开始,是需要将基因跟其编码的蛋白质对应起来,找遍了各种数据库都没发现有相关的注释文件,Uniprot作为处理蛋白质的大佬,结果里都有,肯定有办法能够满足需求. 搜索TP5 ...

  8. python keyboard模块_[python] PyMouse、PyKeyboard用python操作鼠标和键盘

    1.PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用.支持的平台及依赖如下: Linux - Xlib Mac - Quartz, ...

  9. python实现dnf自动刷怪_利用pyautogui自动化领取dnf的在线养竹活动的竹子

    背景: Dnf的周年庆活动之一,鬼才策划为了在线率想的活动,规律如下 1.在线1分钟可以生成1根竹子,领取竹子以后可以获取到积分,积分满足活动要求后可以领取相应档位的奖励 2.玩家不在线期间,不会生成 ...

  10. python 判断文件类型_python接口自动化(三十) 上传文件时自动判断文件类型(filetype)...

    前言 如何判断一个文件的类型呢,判断这个文件是png还是jpg,还是MP3文件?filetype包是python用来判断文件类型的依赖包,github地址:https://github.com/h2n ...

最新文章

  1. Mysql修复损坏表并写脚本自动修复
  2. 使用powershell一次性创建用户,OU及组
  3. Redis快的原因:内存操作 单线程没有切换开销 多路复用IO
  4. 小师妹学JavaIO之:try with和它的底层原理
  5. centos nginx重启_nginx学习笔记
  6. php执行一条insert插入两条数据其中一条乱码
  7. CCIE理论-第六篇-SD-WAN网络(一)
  8. 【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐搭积木(状压dp)
  9. 周琦能和范志毅比高下?
  10. Blockathon记录——by 参赛者 张翔
  11. hnu暑期实训之日历问题
  12. 启明星系统字体的演变
  13. 拉普拉斯方程的解matlab,急求用matlab编写解拉普拉斯方程的程序
  14. 一套完整的网络视频监控系统设计方案
  15. 关于flash播放器不为人知的四大点
  16. 名师出高徒,VS 2005 调试心得。个人信息管理页面(部分)
  17. 量化私募FOF为何“脱颖而出”?
  18. 【信息检索导论】第一章 布尔检索
  19. protoc protoc-gen-go安装
  20. DSML_用Excel实现按行排序后按列排序,最后高亮重复值

热门文章

  1. Codeforces Round #632 (Div. 2) C. Eugene and an array 思维 + 前缀和
  2. hdu 7111-Remove
  3. Data Structure Problem
  4. 牛客网【每日一题】7月29日题目精讲—Max Power
  5. YbtOJ#526-折纸游戏【二分,hash】
  6. YbtOJ#20237-[冲刺NOIP2020模拟赛Day10]区间均值【树状数组】
  7. jzoj6276-[Noip提高组模拟1]树【线段树,扫描线,倍增】
  8. 【2018.3.17】模拟赛之二-ssl1862jzoj1366 删数【区间dp】
  9. 【图论】旅行者(P5304)
  10. 【SAM】差异(P4248)