江苏中南建设集团网站是多少,平面设计配色,广东建设工程信息网站,wordpress 自定义页面插件操作excel
其他的库#xff1a;
xlrd xlwt #xff1a; 过时了#xff0c;只能操作xls后缀的文件。pandas#xff1a;大数据测试 数据分析项目会用。
openpyxl#xff1a;第三方库 支持的格式有#xff1a;.xlsx、.xlsm、.xltx、.xltm#xff0c;l不支持.xls文件格式…操作excel
其他的库
xlrd xlwt 过时了只能操作xls后缀的文件。pandas大数据测试 数据分析项目会用。
openpyxl第三方库 支持的格式有.xlsx、.xlsm、.xltx、.xltml不支持.xls文件格式【转化】 -1安装 pip pycharm两种方式安装都可以 -2导入全部导入 和部分导入
excel表格操作有几个概念和相关的操作
工作簿 表格本身workbook表单 sheet单元格 cell 有某行某列决定表格单元格里的数据 value
读取excel表格里所有内容sh.values
这是一个生成器测试开发高级编程里会学的。 可以转化。–list转化为列表列表 列里嵌套元组的数据。每行数据存在一个元组里最终存在一个大列表里。 第一行数据存在第一个元组里 标题第二行数据存在第二个元组 第一条测试用例数据第三行数据存在第三个元组 第二条测试用例数据 … 如果分别获取每行的数据 – for循环遍历。
操作excel
# import openpyxl
from openpyxl import load_workbook
from pathlib import Path# 0、路径处理 文件不能写绝对路径 用相对路径处理
exc_path Path(__file__).absolute().parent / testcase65.xlsx# 1、加载工作簿对象
wb load_workbook(exc_path)# 2、找到读取数据的表单 login
sh wb[login]#3、找到单元格 cell 某行某列决定表格 -- 行和列是从1开始的
cell sh.cell(row1,column1)#4、得到单元格里的内容 -value
cell_value sh.cell(row1,column1).value
# print(cell_value)# 5、读取所有内容 -- for循环遍历到每一行的数据。
# print(list(sh.values))
# for row in sh.values:# print(row)# 6、扩展 获取部分内容 某个区间的行列 元组的嵌套 每行数据是一个元组
# part_value sh[A1:C3]
# print(part_value)
# for row in part_value:# print(row) # (Cell login.A1, Cell login.B1, Cell login.C1)# for col in row:# print(col.value)# 7、修改的操作 --了解 单元格的内容进行重新赋值, 一定要记得保存。
sh.cell(row1, column1).value case_id
# 保存操作
wb.save(testcase65.xlsx)
# 关闭excel
wb.close()读取内容数据类型
excel读取的数据的类型的问题总结
如果单元格里只有数字那么读取出来直接是数字-- 整型或者浮点型如果单元格为空没有编辑过数据读取出来是 None 注意空格是字符串 不是None 【注意不是null】如果单元格当中用只有TRUE FALSE (excel表格会自动默认大写) 那么读取转化为布尔值类型–True False如果单元格只有时间格式 2023/07/22,那么读取出来就是 datatime类型 - 年月日时分秒 - datetime.datetime(2023, 7, 22, 0, 0以上都不是那么就是字符串的类型比如列表 字典等数据 读取出来是字符串因为excel表格不认识字典这些数据类型 所以都是字符串 注意的问题 ‘{“Content-Type”:“application/json”}’ – 转化为字典[python识别的数据类型 再去操作] eval() jsonpath
# import openpyxl
from openpyxl import load_workbook
from pathlib import Path# 0、路径处理 文件不能写绝对路径 用相对路径处理
exc_path Path(__file__).absolute().parent / testcase65.xlsx# 1、加载工作簿对象
wb load_workbook(exc_path)# 2、找到读取数据的表单 login
sh wb[login]#3、找到单元格 cell 某行某列决定表格 -- 行和列是从1开始的
cell sh.cell(row1,column1)#4、得到单元格里的内容 -value
cell_value sh.cell(row2,column7).value
print(cell_value,type(cell_value))
excel在项目中的应用
接口自动化测试的项目实战-- 存储为Python数据格式。原则 方便读取数据
每一条用例用字典存储因为有key可以表示什么是意义的数据 读取也通过key 辨别什么意义数据多条用例存在列表数据类型里相同意义的数据存在列表 按照索引取值。excel表格里读取出来 存储格式为 [{keyvalue}{},{},{}] key可以直接来自于excel表格第一行数据 --用例标题行value每一条用例 从第二行开始的每一行
from openpyxl import load_workbook
from pathlib import Pathexc_path Path(__file__).absolute().parent / testcase65.xlsx
wb load_workbook(exc_path)
sh wb[login]
cases list(sh.values) # 所有的用例的列表 [(第一行-title),(第二行用例),(),()]
title cases[0] # 得到标题行
list_case []
for case in cases[1:]:data dict(zip(title,case)) # 第一条用例的字典list_case.append(data) # 每一条用例追加到列表里。
print(list_case)# 简化列表推导式
# cases list(sh.values) # 所有的用例的列表 [(第一行-title),(第二行用例),(),()]
# title cases[0] # 得到标题行
# list_case [ dict(zip(title,case)) for case in cases[1:]]excel操作的封装
接口自动化测试的项目实战-- 存储为Python数据格式。原则 方便读取数据
每一条用例用字典存储因为有key可以表示什么是意义的数据 读取也通过key 辨别什么意义数据多条用例存在列表数据类型里相同意义的数据存在列表 按照索引取值。excel表格里读取出来 存储格式为 [{keyvalue}{},{},{}] key可以直接来自于excel表格第一行数据 --用例标题行value每一条用例 从第二行开始的每一行
因为这个方法会经常使用到所以我们需要做封装。 -思考封装成类还是函数呢–函数比较好。
封装函数的步骤 1、功能代码写出来2、def 封装 缩进3、参数化4、返回值
from pathlib import Pathfrom openpyxl import load_workbookdef read_data(exc_path,sheetname):这是读取excel表格函数:param exc_path: 用例文件的路径:param sheetname: 用例表单的名字:return:wb load_workbook(exc_path)sh wb[sheetname]cases list(sh.values) # 所有的用例的列表 [(第一行-title),(第二行用例),(),()]title cases[0] # 得到标题行list_case []for case in cases[1:]:data dict(zip(title,case)) # 第一条用例的字典list_case.append(data) # 每一条用例追加到列表里。return list_case# 简化列表推导式
# cases list(sh.values) # 所有的用例的列表 [(第一行-title),(第二行用例),(),()]
# title cases[0] # 得到标题行
# list_case [ dict(zip(title,case)) for case in cases[1:]]if __name__ __main__:exc_path Path(__file__).absolute().parent / testcase65.xlsxprint(read_data(exc_path, cart))