#封装配置文件
from configparser importConfigParserclassHandleConfig:"""配置文件读写数据的封装"""
def __init__(self, filename):""":param filename: 配置文件名"""self.filename=filename
self.config= ConfigParser() #读取配置文件1.创建配置解析器
self.config.read(self.filename, encoding="utf-8") #读取配置文件2.指定读取的配置文件
#get_value获取所有的字符串,section区域名, option选项名
defget_value(self, section, option):returnself.config.get(section, option)#get_int获取整型,section区域名, option选项名
defget_int(self, section, option):returnself.config.getint(section, option)#get_float获取浮点数类型,section区域名, option选项名
defget_float(self, section, option):returnself.config.getfloat(section, option)#get_boolean(译:比例恩)获取布尔类型,section区域名, option选项名
defget_boolean(self, section, option):returnself.config.getboolean(section, option)#get_eval_data 获取列表,section区域名, option选项名
defget_eval_data(self, section, option):returneval(self.config.get(section, option))
@staticmethoddefwrite_config(datas, filename):"""写入配置操作
:param datas: 需要传入写入的数据
:param filename: 指定文件名
:return:"""
#做校验,为嵌套字典的字典才可以(意思.隐私.谈.ce)
if isinstance(datas, dict): #遍历,在外层判断是否为字典
#再来判断内层的 values 是否为字典
for value in datas.values(): #先取出value
if not isinstance(value, dict): #在判断
return "数据不合法, 应为嵌套字典的字典"config= ConfigParser() #1.创建配置解析器---与写入配置操作一致
for key in datas: #写入操作
config[key] =datas[key] # config 类似于一个空字典
with open(filename,"w") as file: #保存到哪个文件filename=需要指定文件名
config.write(file)#return "写入成功"
#do_config = HandleConfig('testcase.conf')
if __name__ == '__main__':#读取操作
do_config1 = HandleConfig('testcase.conf') #读取那个文件
res = do_config1.get_value("msg", "success_result") #读取什么内容
print(res)#写入操作
do_config = HandleConfig('write_config.ini')
datas={"file path": {"cases_path": "cases.xlsx","log_path": "record_run_result.txt"},"msg": {"success_result": "Pass","fail_result": "Fail"}
}
do_config.write_config(datas,"write_config.ini")pass