在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可。

这篇博客,介绍下python中利用configparser模块读写配置文件的方法,仅供参考。。。

一、读取文件

configparser模块支持读取.conf和.ini等类型的文件,那么首先在文件夹新建一个.ini文件,写入一些信息,如下图:

示例代码如下:

 # coding=utf-8
import configparser
import os os.chdir("E:\\Automation\\UI\\testcase")
cf = configparser.ConfigParser() # read(filename) 读文件内容
filename = cf.read("test.ini")
print(filename) # sections() 得到所有的section,以列表形式返回
sec = cf.sections()
print(sec) # options(section) 得到section下的所有option
opt = cf.options("mysql")
print(opt) # items 得到section的所有键值对
value = cf.items("driver")
print(value) # get(section,option) 得到section中的option值,返回string/int类型的结果
mysql_host = cf.get("mysql","host")
mysql_password = cf.getint("mysql","password")
print(mysql_host,mysql_password)

执行脚本,结果如下所示:

 ['test.ini']
['driver', 'mysql']
['host', 'port', 'username', 'password']
[('path', 'E:\\Automation\\UI\\testcase\\browser\\chromedriver.exe'), ('url', 'https://www.baidu.com/')]
127.0.0.1 123456

脚本解析:

cf.read(filename):读取文件内容

cf.sections():得到所有的section,并且以列表形式返回

cf.options(section):得到section下所有的option

cf.items(option):得到该section所有的键值对

cf.get(section,option):得到section中option的值,返回string类型的结果

cf.getint(section,option):得到section中option的值,返回int类型的结果

二、写入文件

如果需要在配置文件写入内容,需要os函数帮忙,示例代码如下:

 # coding=utf-8
import configparser
import os os.chdir("E:\\Automation\\UI\\testcase")
cf = configparser.ConfigParser() # 往配置文件写入内容 # add section 添加section项
# set(section,option,value) 给section项中写入键值对
cf.add_section("mq")
cf.set("mq", "user", "laozhang")
cf.add_section("kafka")
cf.set("kafka", "user", "xiaozhang") # write to file
with open("test1.ini","w+") as f:
cf.write(f)

执行脚本,结果如下所示:

脚本解析:

cf.write(filename):将configparser对象写入.ini类型的文件

add_section():添加一个新的section

add_set(section,option,value):对section中的option信息进行写入

三、修改文件

还可以利用os函数对文件进行修改,示例代码如下:

 # coding=utf-8
import configparser
import os os.chdir("E:\\Automation\\UI\\testcase")
cf = configparser.ConfigParser() # 修改配置文件的内容 # remove_section(section) 删除某个section的数值
# remove_option(section,option) 删除某个section下的option的数值
cf.read("test1.ini")
cf.remove_option("kafka","user")
cf.remove_section("mq") # write to file
with open("test1.ini","w+") as f:
cf.write(f)

执行脚本,结果如下所示:

脚本解析:

cf.read(filename):读取文件(这里需要注意的是:一定要先读取文件,再进行修改)

cf.remove_section(section):删除文件中的某个section的数值

cf.remove_option(section,option):删除文件中某个section下的option的数值

如上所示,就是configparser模块读写配置文件的方法,代码仅为参考,具体使用请自行实践。。。

python:利用configparser模块读写配置文件的更多相关文章

  1. Python自动化测试 -ConfigParser模块读写配置文件

    C#之所以容易让人感兴趣,是因为安装完Visual Studio, 就可以很简单的直接写程序了,不需要做如何配置. 对新手来说,这是非常好的“初体验”, 会激发初学者的自信和兴趣. 而有些语言的开发环 ...

  2. python:实例化configparser模块读写配置文件

    之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用. 实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高 ...

  3. 用ConfigParser模块读写配置文件——Python

    对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑 ...

  4. Python自动化测试 (二) ConfigParser模块读写配置文件

    ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单. 直接上代码,不解释,不多说. 配置文件的格式是: []包含的叫section,    section 下有op ...

  5. Python使用ConfigParser模块读取配置文件(config.ini)以及写入配置文件

    前言 使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是configParser.configPars ...

  6. configparser模块读写ini配置文件

    在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configpars ...

  7. python中confIgparser模块学习

    python中configparser模块学习 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section ...

  8. Python中ConfigParser模块应用

    Python中ConfigParser模块应用 Python的ConfigParser模块定义了3个对INI文件进行操作的类 RawConfigParser.ConfigParser和SafeConf ...

  9. python中configparser模块读取ini文件

    python中configparser模块读取ini文件 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(se ...

随机推荐

  1. 【20190226】JavaScript-知识点记录:dom0级事件,dom2级事件

    DOM0级事件处理程序: 通过将元素的事件处理程序属性(如onclick)的值设置为一个函数来指定事件处理程序的方法称为DOM0级方法,它被认为是元素的方法,这时候的事件处理程序是在元素的作用域中运行 ...

  2. Android IPC机制(三)使用AIDL实现跨进程方法调用

    上一篇文章中我们介绍了使用Messenger来进行进程间通信的方法,但是我们能发现Messenger是以串行的方式来处理客户端发来的信息,如果有大量的消息发到服务端,服务端仍然一个一个的处理再响应客户 ...

  3. php post接口,登录功能

    登录功能同注册功能一样,都是使用 post 方法,在执行 sql 语句时,同样要使用 "select * from 表名 where 键名 = 参数" 的查询方式,不同的是: 注册 ...

  4. JS辨别访问浏览器判断是android还是ios系统

    function isIOSOrAndroid() { var browser = { versions: function() { var u = navigator.userAgent, app ...

  5. Spark之UDAF

    import org.apache.spark.sql.{Row, SparkSession} import org.apache.spark.sql.expressions.{MutableAggr ...

  6. Win10更新

    Turn: https://m.uczzd.cn/webview/news?app=meizubrw-iflow&aid=11529477703533248224&cid=100&am ...

  7. SQL Server基础之登陆触发器

    虽然同表级(DML)触发器和库级(DDL)触发器共顶着一个帽子,但登陆触发器与二者有本质区别.无论表级还是库级,都是用来进行数据管理的,而登陆触发器是纯粹的安全工具. 登陆触发器只响应LOGON事件, ...

  8. c/c++ 图的最短路径 Dijkstra(迪杰斯特拉)算法

    c/c++ 图的最短路径 Dijkstra(迪杰斯特拉)算法 图的最短路径的概念: 一位旅客要从城市A到城市B,他希望选择一条途中中转次数最少的路线.假设途中每一站都需要换车,则这个问题反映到图上就是 ...

  9. AppiumLibrary常用关键字

    通过上一章节,open application关键字的使用,相信大家对手机自动化充满了兴趣,那么今天这一章节,主要介绍AppiumLibrary中常用关键字的使用. 一.实用函数 关键字 含义 实例 ...

  10. LeetCode算法题-Majority Element(Java实现)

    这是悦乐书的第181次更新,第183篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第40题(顺位题号是169).给定大小为n的数组,找到数组中出现次数超过n/2的元素.假 ...