引言
在编写接口自动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值。为了统一管理和操作这些固定的变量,咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中,后续需要用到这些变量和变量值时通过代码读取或者写入数据到该配置文件即可,使用配置文件的好处就是不用在程序员写死,可以使程序更灵活。因而对于python语言就封装了configparser模块,用来处理指定格式的文件(文件名称一般为xxx.ini),配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section), 每个节可以有多个参数(键=值)。
注:目前python3版本操作配置文件模块名称变更为configparser,原有的python2版本配置文件模块名称变更为ConfigParser
configparser模块功能介绍
configparser模块主要封装提供了ConfigParser()类、RawConfigParser()类、SafeConfigParser()类等,如下图导入configparser模块,可以查看并使用模块下已经封装好的所有类
在configparser模块中主要还是使用封装的ConfigParser()类提供的方法来操作配置文件,对配置文件进行数据读取和写入等。
具体的该模块python官网对其有完整的介绍:https://docs.python.org/3/library/configparser.html
配置文件的格式如下:
- 中括号“[ ]”内包含的为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.read(r'G:\api_test\configfile.ini',encoding='utf-8') conf.set("code", "code", "6666") # 修改指定section 的option conf.set("code", "age", "123") # 增加指定section 的option conf.has_section("code") conf.has_option("code","age") #conf.remove_section("test") #conf.remove_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() self.cf.read(configpath,encoding='utf-8') def get_cookie(self, param): value = self.cf.get("cookie", param) return value def get_sheet(self,param): value = self.cf.get("sheet",param) return value def get_mysql(self,param): value = self.cf.get("mysql",param) return value def get_code(self,param): value = self.cf.get("code",param) return value
这样封装成类后,后续其他模块需要读取配置文件数据,就可以不用重复写读取配置文件的代码,直接引入该封装的类,并实例化对象调用类里面封装的方法即可。
以上就是如何利用python 读取配置文件的详细内容,更多关于python 读取配置文件的资料请关注其它相关文章!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]