引⾔
在编写接⼝⾃动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值。为了统⼀管理和操作这些固定的变量,咱们⼀般会将这些固定的变量以⼀定规则配置到指定的配置⽂件中,后续需要⽤到这些变量和变量值时通过代码读取或者写⼊数据到该配置⽂件即可,使⽤配置⽂件的好处就是不⽤在程序员写死,可以使程序更灵活。因⽽对于python语⾔就封装了configparser模块,⽤来处理指定格式的⽂件(⽂件名称⼀般为xxx.ini),配置⽂件的格式跟windows下的ini配置⽂件相似,可以包含⼀个或多个节(section), 每个节可以有多个参数(键=值)。
注:⽬前python3版本操作配置⽂件模块名称变更为configparser,原有的python2版本配置⽂件模块名称变更为ConfigParser
configparser模块功能介绍
configparser模块主要封装提供了ConfigParser()类、RawConfigParser()类、SafeConfigParser()类等,如下图导⼊configparser模块,可以查看并使⽤模块下已经封装好的所有类
在configparser模块中主要还是使⽤封装的ConfigParser()类提供的⽅法来操作配置⽂件,对配置⽂件进
⾏数据读取和写⼊等。配置⽂件的格式如下:
中括号“[ ]”内包含的为section。
section 下⾯为类似于key-value 的配置内容,⼀般是⽤赋值符“=”分隔。
⽰例:
读取配置⽂件及其常⽤读取指定数据⽅法
ConfigParser()类提供了操作读取配置⽂件、读取指定配置⽂件中section、section下的所有key-value等⽅法,具体⽅法使⽤如下:
代码⽰例:先生的英文缩写
import configparser
cf = configparser.ConfigParser() # 实例化
# read(filename) 读取⽂件
filename = cf.read(r'G:\api_test\configfile.ini',encoding='utf-8')
情侣空间怎么分手# sections() 得到所有的section,以列表形式返回
sec = cf.sections()
print(sec)
# 得到section下的所有option
opt = cf.options("mysql")
print(opt)
# items 得到section的所有键值对
value = cf.items("mysql")
print(value)
print(dict(value)) # 转成字典类型
# get(section,option) 得到section中的option值,返回string/int类型的结果
mysql_host = cf.get("mysql","host")
mysql_password = cf.getint("mysql","port")
print(mysql_host,mysql_password)
运⾏以上代码输出如下:
写⼊配置⽂件(增删改操作)及其提供的操作⽅法
ConfigParser()类提供了写⼊修改配置⽂件数据等⽅法,具体⽅法使⽤如下:
在配置⽂件编辑如下信息:
编辑如下代码:
import configparser
conf = configparser.ConfigParser()
conf.set("code", "code", "6666") # 修改指定section 的option
conf.set("code", "age", "123") # 增加指定section 的option
conf.has_section("code")
conf.has_option("code","age")
#ve_section("test")
#ve_option("test","haha")
if 'test' not in conf.sections():
conf.add_section("test") # 增加section
conf.set("test", "haha", "123") # 给新增的section 写⼊option
file = open(r'G:\api_test\configfile.ini', 'w',encoding='utf-8')
conf.write(file)
三支一扶报名条件
读取配置文件失败file.close()
运⾏结束后如下:
编辑修改配置⽂件记得关闭配置⽂件。
通过以上使⽤ConfigParser()类提供读写配置⽂件的相关⽅法,就可以⽐较⽅便的操作配置⽂件。but,以上向配置⽂件读取和写⼊数据到配置⽂件的代码,并没有进⾏封装。由于经常需要使⽤配置⽂件进⾏数据读取和写⼊,因此建议将操作配置⽂件读写的操作封装成公共的模块。如操作读取配置⽂件的数据的封装,配置⽂件内容如下:
新建read_config.py⽂件,封装的读取配置⽂件的代码,实例如下:
import configparser
import os
class ReadConfig():
def __init__(self, filepath=None):
root_dir = os.path.dirname(os.path.abspath('.')) # 获取项⽬主路径
# print("打印",root_dir)
configpath = os.path.join(root_dir, "configfile.ini") # 拼接路径
# print("得到的路径为",configpath)
self.cf = configparser.RawConfigParser()
ad(configpath,encoding='utf-8')
def get_cookie(self, param):
value = ("cookie", param)
return value
def get_sheet(self,param):
value = ("sheet",param)
return value
def get_mysql(self,param):
张伦硕肌肉value = ("mysql",param)
return value
杨立新儿子def get_code(self,param):
value = ("code",param)
return value
这样封装成类后,后续其他模块需要读取配置⽂件数据,就可以不⽤重复写读取配置⽂件的代码,直接引⼊该封装的类,并实例化对象调⽤类⾥⾯封装的⽅法即可。
以上就是如何利⽤python 读取配置⽂件的详细内容,更多关于python 读取配置⽂件的资料请关注其它相关⽂章!
发布评论