python:利用configparser模块读写配置文件

时间:2023-03-08 15:56:33

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

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

一、读取文件

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

python:利用configparser模块读写配置文件

示例代码如下:

 # 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)

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

python:利用configparser模块读写配置文件

脚本解析:

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)

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

python:利用configparser模块读写配置文件

脚本解析:

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

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

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

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