py13讲[openpyxl+excle用例读取数据](笔记)
*拆包 from ddt import ddt,data my_dict = {"name":"xj","age":18}.items()#未拆包是一个数据 #拆包后是两个数据;输入是字符串格式 @data(*my_dict) def test_add(self, case): print(case) @data([[1,2],[3,4]])或者([123456]) # def test_add(self,case): # print(case) 安装:openpyxl openpyxl: .xlsx读写操作 cmd下:pip install openpyxl 测试数据:事先会写好在excel --excel的流程(3个对象) 工作薄(Workbook) 表单(Sheet) 单元格(Cell) 打开一个excel,选择一个表单,在表单里面读取单元格的值 准备测试数据 user password1 password2 check python30 123456 123456 {"code": 1, "msg": "注册成功"} python26 123456 123456 {"code": 0, "msg": "该账户已存在"} 123456 {"code": 0, "msg": "所有参数不能为空"} 123456 {"code": 0, "msg": "所有参数不能为空"} python27 {"code": 0, "msg": "所有参数不能为空"} {"code": 0, "msg": "所有参数不能为空"} python26 123456 12345 {"code": 0, "msg": "两次密码不一致"} python29 12345 12345 {"code": 0, "msg": "账号和密码必须在6-18位之间"} python28 abcdefghi1234567890 abcdefghi1234567890 {"code": 0, "msg": "账号和密码必须在6-18位之间"} load_workbook模块,去打开测试数据文件,生成WorkBook对象(wb) 根据表单名称选择表单(sh):wb['表单名称'] 在表单当中,获取单元格的数据 1.单元格对象:sh.cell(row,colum) # 下标从1开始 2..value获取单元格的值 3.修改数据:sh.cell(row,colum).value = 新的值 得到当前表单当中,总行数和总列数 sh.max_row # 总行数 sh.max_column # 总列数 在表单当中,获取单元格的数据: 修改数据:sh.cell(row,colum).value = 新的值 保存数据(保存整个工作薄) WorkBook对象(wb).save(文件路径) 保存到原文件的时候,需要注意:文件没有被占用,否则会被权限不允许的错误。 所有读取出来的数据:字符串、数字 excel操作: 按行读取数据 sh.rows = 所有行的数据 list(sh.rows) 返回的是一个列表,列表当中的成员:每一个行的数据元组 查看当前文件的路径 import os file_path = os.path.join(os.path.dirname(os.path.abspath(__file__),"login_cases.xlsx") 加载excel数据文件 from openpyxl import load_workbook wb = load_workbook(file_path) 根据表单名称选择表单:wb['表单名称'] sh = wb["login"] 拿到字典的key值: titles = [] for item in list(sh.rows)[0]: # 遍历第1行当中每一列 titles.append(item.value) print(titles) 把key和value组合到一起,形成一个字典。再将字典,放到列表当中 # # print(list(sh.rows)) # 每一个行是个元组,无组里放的是每一行的单元格。 for item in list(sh.rows)[1:]: # 遍历每一行 value_dict = {} # 每一行是一个字典。 print(item) for index in range(len(item)): # 获取每一行的单元格数据 print(index,item[index],item[index].value) value_dict[titles[index]] = item[index].value print(value_dict) data_lists.append(value_dict) # 将每一行测试数据追加到列表当中。 print(data_lists) zip 打包函数 格式:zip() li1 = ['user', 'passwd', 'check'] li2 = ["python27","lemonban66666",{"code": 0, "msg": "登录成功"}] res = zip(li1,li2) print(dict(res)) eval函数(字符串) 转成python语句执行 res["check"] = eval(res["check"]) # 将check的字符串,转换为字典对象。