python对excel的处理
2021/10/7 17:13:22
本文主要是介绍python对excel的处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
v2
‘’’
函数名:def get_excel_data()
版本:v2.0
函数功能: 1- 获取请求的body与预期的响应结果! 具体方案: 1- 导入对应的excel读取的库 xlrd 处理xxx.xls 格式 ; openpyxl xx.xlxs 2- 把excel文件读取到内存 excel对象 3- 找到你需要操作的sheet 4- 读取对应的行与列数据(单元格数据) ''' import xlrd def get_excel_data(excelDir,sheetName, caseName): resList=[] #1,加载excel workBook=xlrd.open_workbook(excelDir,formatting_info=True) #2,获取对应的一个表 workSheet = workBook.sheet_by_name(sheetName) #3,获取单元格的数据 # print(workSheet.row_values(0))#获取第0行--excel行号从0开始 # print(workSheet.col_values(0)) # 获取第0列--excel列号从0开始 # print(workSheet.cell_value(0,0))#获取某一个单元格数据 cell_value(行号,列号) idx=0 #代表行号的初始值 for one in workSheet.col_values(0): if caseName in one: # 条件满足,这一行数据的对应列是需要的数据 resBody = workSheet.cell_value(idx,9) respData = workSheet.cell_value(idx,11) resList.append((resBody,respData)) idx += 1 return resList if __name__ == '__main__': res = get_excel_data('../data/Delivery_System_V1.5.xls','登录模块','Login') print(res) for one in res: print(one)
v3
#-*- coding: utf-8 -*- #@File : handle_excel.py #@Time : 2021/9/8 20:35 #@Author : xintian #@Email : 1730588479@qq.com #@Software: PyCharm #Date:2021/9/8 print() """ 函数名:def get_excel_data() 版本:v3.0 函数功能: 1- 获取请求的body与预期的响应结果! 2- 可以自定义获取对应的列数据 3- 需要获取测试用例的里面指定的用例运行! 具体方案: 用例筛选! 1- 全部执行 all 2- 分段执行 tc001-tc003 tc005-tc007 3- 随机执行某一个 tc001 tc004 tc008 4- 混合模式:['tc001','tc003-tc007',‘tc009’] 框架层pytest只能定制化执行接口层--跑某一个接口,或者不跑某一个接口 但是:具体的测试用例的挑选,框架做不了! pytest:是靠一个数据驱动装饰器执行 @pytest.mark.parametrize(挑选出来) """ #—————————————————————————————v3.0---------------------------------- import xlrd def get_excel_data(excelDir,sheetName,caseName,*colName,selectCase=['all']): resList = [] #1- 加载excel #formatting_info = True 保持样式 workBook = xlrd.open_workbook(excelDir,formatting_info=True) #2- 获取对应具体的一个表 workSheet = workBook.sheet_by_name(sheetName) """ 函数调用者使用列名:标题,URL 代码真正操作读取数据:还是使用列编号! 思路的转化: 把函数调用者的输入的列名--转化---列编号 """ #---------------------------------------------------- colIndxList = []#函数调用者输入列名,转化后的列编号--列表类型 for i in colName:#遍历用户输入的列名--colName元组 colIndxList.append(workSheet.row_values(0).index(i)) print(colIndxList) #---------------------------------------------------- #-----------------------挑选用例执行--------------------------- selectList = []#挑选出来的用例 if 'all' in selectCase:#全部执行这个接口的所有用例 selectList = workSheet.col_values(0) else:#1- 某一个 2- 某一段 ['001','003-006'] for one in selectCase: if '-' in one:#是一段用例 start,end = one.split('-')# 3,6 for i in range(int(start),int(end)+1):#(3,7)---3,4,5,6 selectList.append(caseName+f'{i:0>3}')#Login3---Login003 else: selectList.append(caseName+f'{one:0>3}') #------------------------------------------------------- idx = 0#代表行号的初始值 for one in workSheet.col_values(0):#获取第0列数据 if caseName in one and one in selectList: #条件满足,这一行数据的对应列是需要的数据 getColData = []#存放一行对应的很多列的数据 for colIdx in colIndxList: res = workSheet.cell_value(idx,colIdx)#读取某一个单元格数据 getColData.append(res) resList.append(getColData) idx += 1 return resList if __name__ == '__main__':#ctrl+j 快捷键 configData = ['用例编号','标题','URL','请求参数'] res = get_excel_data('../data/Delivery_System_V1.5.xls','登录模块','Login',*configData,selectCase=['001','003','006','all']) #print(res) for one in res: print(one) """ 测试反馈: 1- 如果是普通的字符串---不需要转化 2- 是json字符串---需要转化成字典--因为后续的接口需要字典格式 """
这篇关于python对excel的处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享