在写测试脚本时,经常有一些需要变动的数据,可以单独放在ini文件里,然后读取传递给相应的函数,这样程序操作更灵活
这里主要说的就是python使用自带的configparser模块用来读取配置文件,配置文件的形式类似windows中的ini文件,但这使之个文件后缀而已,自然可以是.con或者.txt,但里面内容却是类似的。如下,以.ini文件为例,新建config.ini文件:
[Mysql-Database]
host = localhost
user = root
password = 123456
db = test
charset : utf8
others : hahaha
[Email]
host = https://mail.qq.com
address = 1715338780@qq.com
password = 123456
其中中括号中的是section
section下是以key=value 格式的键值对,或者key:value的形式
新建一个readconfig.py文件,读取配置文件的信息
import configparser
cf = configparser.ConfigParser()
cf.read("config.ini")
secs = cf.sections() # 获取文件中所有的section(一个配置文件中可以有多个配置,如数据库相关的配置,邮箱相关的配置,每个section由[]包裹,即[section]),并以列表的形式返回
print('secs is',secs)
options = cf.options("Mysql-Database") # 获取某个section名为Mysql-Database所对应的键
print('options is',options)
items = cf.items("Mysql-Database") # 获取section名为Mysql-Database所对应的全部键值对
print('items is',items)
host = cf.get("Mysql-Database", "host") # 获取[Mysql-Database]中host对应的值
print('host is',host)
上述代码运行结果如下,可以和config.ini进行对比
secs is ['Mysql-Database', 'Email', 'add_data']
options is ['host', 'user', 'password', 'db', 'charset', 'others']
items is [('host', 'localhost'), ('user', 'root'), ('password', '123456'), ('db', 'test'), ('charset', 'utf8'), ('others', 'hahaha')]
host is hahaha
以上函数是对配置文件的读取,一下是对配置文件的添加或者修改
import configparser
cf = configparser.ConfigParser()
cf.add_section('add_Data')#添加section到配置文件
cf.set('add_Data','new_name','mxh')#add_Data section新增new_name参数和值
cf.set('add_Data','new_password','222')#add_Data section新增new_password参数和值
cf.write(open('config.ini','w'))#写完数据要write一下
print(cf.items('add_Data'))#可以打印刚添加的新内容查看
之后会在配置文件中看到结果,如果想修改其中的值,直接和新增加方式一样,
config=ConfigParser.ConfigParser()
config.read(filename)
config.options(section)
config.get(section,option)
config.add_section(section-name)
config.set(section,option,val)
config.section()
config.write(obj_file)