Python —— excel文件操作(超详细)

背景

很多公司还是用excel去管理测试用例的,所以为了减少重复繁琐的导出导出工作,学会如何用代码操作excel表格很实用~

1、读取excel文件基本步骤

1、操作excel的一些库

1、xlrd:读取库,xlwt:写入,现在基本不用,因为只能处理.xls这种格式的数据

2、使用openpyxl库:不支持的 .xls格式,支持的格式:.xlsx、.xlsm、.xltx、.xltm,可以将.xls 转化为 xlsx格式

        - 安装openpyxl,使用 pip install openpyxl

        - 导入:import | from  openpyxl  import  xxx

2、读取的步骤

1、读取单元格数据

  1. 获取表格的工作簿对象(用到 openpyxl中的load_workbook模块)
  2. 得到表单,通过sheet名称 — sheet
  3. 获取单元格 — cell
  4. 获取单元格数据 — cell.value

实战演练:

excel表格如下:

代码实战:

from openpyxl import load_workbook
import pathlib

# 获取excel的相对路径
cur_path = pathlib.Path(__file__).absolute()
excel_path = cur_path.parent/"testcase64.xlsx"

# 第一步,获取表格的工作簿对象
wb = load_workbook(excel_path)
print(wb) # <openpyxl.workbook.workbook.Workbook object at 0x03EFCD60>

# 第二步,得到表单——sheet
sheet = wb["login"]
print(sheet)

# 第三步,获取单元格数据
cell = sheet.cell(row=1,column=3)
print(cell)

# 第四步,获取单元格数据 -- value
cell_value = sheet.cell(row=2,column=2).value
print(cell_value)   # 输出:登录正常

# 获取表单中所有的数据 -- 转化为列表
# 因为 sheet.values的输出是“<generator object Worksheet.values at 0x03817840” > 就是一个生成器,可以转化为列表的形式
datas = list(sheet.values)
print(datas)    # 是一个列表,每一个数据都是元组
'''
[
('id', 'title', 'method', 'header', 'url', 'data', 'expected'), 
(1, '登录正常', 'post', '{"Content-Type":"application/json"}', 'https://openapiv5.ketangpai.com//UserApi/login', '{"email":"2378807189@qq.com ","password":"lemon123456 ","remember":"0","code":"","mobile":"","type":"login","reqtimestamp":1695045752424}', '{"status":1,"code":10000,"message":"访问成功","data":{"token":"skjdaskjhd"}'), 
(2, '登录异常', 'post', '{"Content-Type":"application/json"}', 'https://openapiv6.ketangpai.com//UserApi/login', '{"email":"2378807189@qq.com ","password":"lemon","remember":"0","code":"","mobile":"","type":"login","reqtimestamp":1695045752424}', '{"status":0,"code":"30508","message":"登录失败"}')
]
'''

'''
全部读取的数据转化为项目里需要的格式数据
'''
# 第一步,取出标题
title = datas[0]

# 第二步,再一次获取后续的每一行数据,跟title压缩成字典
case_list = []
for case in datas[1:]:
    case_dict = dict(zip(title,case))
    case_list.append(case_dict)
print(case_list)

# 通过列表推导式来遍历
case_list1 = []
case_list1 = [case_list1.append(dict(zip(title,case))) for case in datas]
print(case_list)

 2、读取excel文件的优化

优化思路,代码分层思想:按照不同的功能代码进行不同包的管理(自动化框架的结构):

  1. 工具层:tools/common/util,封装好的公共方法,类同于Jmeter里的函数助手,比如对excel读取数据的处理过程
  2. 测试数据层:data/testdata,放测试数据,例如:txt文件、excel表格等
  3. 测试用例层:主要维护用例(pytest框架主要做的事情
  4. 测试结果输出:如 测试报告、测试日志
  5. 入口文件:main.py、run.py一般放在最外层

优化实战:

1、按照分层思想,新建data层和tools层,并完善其中的文件,参考如下图片:

2、将获取excel_path和获取数据的方式分别写到handle_excel文件和handle_path两个文件中,如下:

'''
 handle_excel文件
'''
from openpyxl import load_workbook
from d11_excel操作和pytest框架.tools.handle_path import exce_path

def read_excel(filename, sheet)
    wb = load_workbook(filename)
    sheet = wb[sheet]
    datas_list = list(sheet.values)
    title = datas_list[0]
    list_case = []

    for case in datas_list[1:]:
        tep_dict = dict(zip(title,case))
        list_case.append(tep_dict)
    return list_case
'''
handle_path.py
'''
import pathlib

cur_path = pathlib.Path(__file__).absolute()
exce_path = cur_path.parent.parent/"data"/"testcase64.xlsx"

if __name__ == '__main__':
    print(exce_path)

3、一些扩展(如何快速查看excel表格中的数据类型)

可以通过debug的方式,看到我们从excel中读取的数据的类型,举例如下:

### 回答1: 批量读取Excel文件中的数据,可以使用Python中的pandas库来实现。 首先,我们需要先安装pandas库。可以通过在命令行中运行以下命令来安装: ```python pip install pandas ``` 然后,在Python中导入pandas库,并使用read_excel函数来读取Excel文件。该函数可以接受文件路径作为参数,并返回一个DataFrame对象,其中包含了Excel文件中的数据。 下面是一个示例代码: ```python import pandas as pd # 设置文件路径 file_path = '文件路径/文件名.xlsx' # 读取Excel文件 data = pd.read_excel(file_path) # 打印数据 print(data) ``` 在上面的代码中,我们首先通过设置文件路径来指定需要读取Excel文件的位置。然后,使用pd.read_excel函数来将文件读取为一个DataFrame对象,保存在data变量中。最后,可以使用print语句来打印读取到的数据。 需要注意的是,上面的代码仅适用于读取单个Excel文件。如果需要批量读取多个Excel文件中的数据,可以将上述代码放在一个循环中,对每个文件进行读取。 以上就是使用Python批量读取Excel文件中数据的方法。 ### 回答2: 批量读取Excel文件中的数据可以通过以下步骤实现。 首先,我们需要导入Python中的pandas库,因为pandas提供了read_excel()函数来读取Excel文件。 接下来,我们可以使用glob库来获取需要读取的所有Excel文件的路径。通过使用glob.glob()函数并传入文件路径的通配符,我们可以获取到满足条件的所有文件路径。 然后,我们使用一个循环来遍历每个Excel文件的路径。在循环的每个迭代中,我们可以使用read_excel()函数来读取文件,并将数据存储在一个数据框中。 最后,我们可以对每个数据框进行进一步的处理,例如合并数据、筛选数据、计算统计指标等,根据具体需求进行操作。 下面是一个示例代码: ```python import pandas as pd import glob # 获取需要读取的所有Excel文件路径 file_paths = glob.glob("path/to/files/*.xlsx") # 循环读取每个Excel文件中的数据 for file_path in file_paths: # 使用read_excel()函数读取Excel文件数据 df = pd.read_excel(file_path) # 对数据进行进一步处理,例如合并数据、筛选数据、计算统计指标等 # ... ``` 以上就是通过Python批量读取Excel文件中数据的简单方法。通过这个方法,我们可以快速有效地获取多个Excel文件中的数据,并进行相应的处理。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值