python读取Excel文件将数据组装成字典

log:

背景

        编写接口自动化框架,设计用例时计划通过Excel管理接口用例,想要读取文件下所有excel相关的用例文件,通过excel管理所有接口用例,xlrd库因为版本升级需要指定对应版本,所以使用了openpyxl库,通过读取Excel用例数据,将数据读取组装成dict重新放到容器里面输出

安装库

pip install openpyxl

实现源码思路

# -*- coding: utf-8 -*-
# @Time    : 2023/10/9 21:24
# @Author  : YYQ
# @File    : read_excel.py

import os
from get_path import path
from openpyxl import load_workbook
from common.log import log
from config.read_config import rc

case_key = eval(rc.get_excel_config(value="case_key"))
# 读取Excel文件
case_list = []
# 列出指定目录下的所有文件名
files = os.listdir(path + '/test_case/case_file')
MIN_ROW = eval(rc.get_excel_config())
MIN_COL = eval(rc.get_excel_config(value="min_column"))
MAX_COL = eval(rc.get_excel_config(value="max_column"))


def get_case_data():
    for file in files:
        # 获取用例文件路径
        case_file = os.path.join(path, "test_case", "case_file", file)
        # 获取sheet
        wb = load_workbook(filename=case_file)
        sheet_names = wb.sheetnames
        for sheet_ in sheet_names:
            log.info(f"读取用例文件>>>>>>>>>【{file}】->{sheet_}")
            # 加载指定sheet页
            sheet = wb[sheet_]
            # 获取数据的行数
            max_row = sheet.max_row
            for row in sheet.iter_rows(min_row=MIN_ROW, max_row=max_row, min_col=MIN_COL, max_col=MAX_COL):
                row_values = []
                if row[0].value is None:
                    continue
                else:
                    for cell in row:
                        row_values.append(cell.value)
                # 合并key,value为字典格式
                dict_case = dict(zip(case_key, row_values))
                if row_values:
                    if dict_case["exec_i_y"] == "否":
                        log.info(f"此用例:::{dict_case} 为关闭状态")
                    else:
                        case_list.append(dict(dict_case))
    return case_list


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

你可能感兴趣的:(pytest,1024程序员节,python,excel)