python excel和yaml文件的读取封装_python

来源:脚本之家  责任编辑:小易  

excel

import os
import xlrd


PATH = lambda p: os.path.abspath(
  os.path.join(os.path.dirname(__file__), p)
)


class ExcelData:
  def __init__(self, file, sheet="sheet1", title=True):
    # 判断文件存在不存在
    if os.path.isfile(PATH(file)):
      self.file = PATH(file)
      self.sheet = sheet
      self.title = title
      self.data = list()
      self.workbook = xlrd.open_workbook(self.file)
    else:
      raise FileNotFoundError("文件不存在")

  @property
  def get_data(self):
    """获取表格数据"""
    if not self.data:
      # 判断表单名称
      if type(self.sheet) not in [int, str]:
        raise Exception("表单名称类型错误")
      else:
        if type(self.sheet) == int:
          book = self.workbook.sheet_by_index(self.sheet)
        else:
          book = self.workbook.sheet_by_name(self.sheet)
      # 判断表格是否有表头,有则输出列表嵌套字典形式数据,否则输入列表嵌套列表形式数据
      if self.title:
        title = book.row_values(0)
        for i in range(1, book.nrows):
          self.data.append(dict(zip(title, book.row_values(i))))  # 可参考字典章节
      else:
        for i in range(book.nrows):
          self.data.append(book.row_values(i))
    return self.data

  @property
  def get_sheets(self):
    """获取所有表单,这个在后续会用到"""
    book = self.workbook.sheets()
    return book

调用操作

infos = ExcelData("htmls/测试用例.xlsx", "登入页面", True).get_data
print(infos)

sheets = ExcelData("htmls/测试用例.xlsx").get_sheets
print(sheets)

yaml

import os
import yaml
from yamlinclude import YamlIncludeConstructor

YamlIncludeConstructor.add_to_loader_class(loader_class=yaml.FullLoader)  # 用于yaml文件嵌套

PATH = lambda p: os.path.abspath(os.path.join(
  os.path.dirname(__file__), p
))


class YamlData:
  def __init__(self, file):
    if os.path.isfile(PATH(file)):
      self.file = PATH(file)
    else:
      raise FileNotFoundError("文件不存在")

  @property # 设置属性,调用data方法时可通过调用属性,不需要带括号
  def data(self):
    with open(file=self.file, mode="rb") as f:
      infos = yaml.load(f, Loader=yaml.FullLoader)
      # infos = yaml.load(f)
    return infos

调用操作

infos = YamlData("htmls/loginsucess.yaml").data
print(infos)
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/yamldata.py
{'id': 'login_001', 'module': '登入页面', 'title': '登入时账号为空', 'message': '已打开链接', 'testcase': [{'element_info': 'css->[placeholder="请输入账号"]', 'operate_type': 'send_keys', 'keys': 'SSSS', 'info': '点击账号输入框,输入账号'}, {'element_info': 'css->[placeholder="请输入密码"]', 'operate_type': 'send_keys', 'keys': 'XXX', 'info': '点击密码输入框,输入密码'}, {'element_info': 'div->"登 录"', 'operate_type': 'click', 'info': '点击登入菜单'}, {'operate_type': 'is_sleep', 'keys': 3, 'info': '等待进入'}], 'check': None}

Process finished with exit code 0

以上就是python excel和yaml文件的读取与封装的详细内容,更多关于python 文件读取与封装的资料请关注真格学网其它相关文章!

您可能感兴趣的文章:python读取excel数据绘制简单曲线图的完整步骤记录Python读取Excel一列并计算所有对象出现次数的方法python3:excel操作之读取数据并返回字典 + 写入的案例解决python pandas读取excel中多个不同sheet表格存在的问题Python matplotlib读取excel数据并用for循环画多个子图subplot操作Python自动化测试中yaml文件读取操作Python读取yaml文件的详细教程python读取yaml文件后修改写入本地实例python读取配置文件方式(ini、yaml、xml)Python读取YAML文件过程详解

  • 本文相关:
  • 深入理解python中的select模块
  • python3实现磁盘空间监控
  • python常用时间操作总结【取得当前时间、时间函数、应用等】
  • python装饰器用法实例总结
  • python图像处理之识别图像中的文字(实例讲解)
  • python如何从文件读取数据及解析
  • python实现cet查分的方法
  • python re模块的高级用法详解
  • 详解python udp 编程
  • python终端输出彩色字符方法详解
  • Python如何调用yaml文件中的参数来执行ssh命令
  • 如何用python将yaml格式文件转换为json
  • python cv2.怎么加载yaml文件
  • Python获取YAML文件属性的问题
  • python 怎么过滤yaml文件
  • yaml使用需要什么python库
  • python怎么使用api接口测试
  • Python2.6 安装 PYyaml失败,这是为什么
  • Python2.6 安装 PYyaml失败,这是为什么
  • 如何用python将yaml格式文件转换为json
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全vbsdos/bathtahtcpythonperl游戏相关vba远程脚本coldfusionruby专题autoitseraphzonepowershelllinux shellluagolangerlang其它首页python读取excel数据绘制简单曲线图的完整步骤记录python读取excel一列并计算所有对象出现次数的方法python3:excel操作之读取数据并返回字典 + 写入的案例解决python pandas读取excel中多个不同sheet表格存在的问题python matplotlib读取excel数据并用for循环画多个子图subplot操作python自动化测试中yaml文件读取操作python读取yaml文件的详细教程python读取yaml文件后修改写入本地实例python读取配置文件方式(ini、yaml、xml)python读取yaml文件过程详解深入理解python中的select模块python3实现磁盘空间监控python常用时间操作总结【取得当前时间、时间函数、应用等】python装饰器用法实例总结python图像处理之识别图像中的文字(实例讲解)python如何从文件读取数据及解析python实现cet查分的方法python re模块的高级用法详解详解python udp 编程python终端输出彩色字符方法详解python入门教程 超详细1小时学会pycharm 2020最新永久激活码(附python 列表(list)操作方法详解python 元组(tuple)操作详解python 字典(dictionary)操作详解pycharm 使用心得(一)安装和首python strip()函数 介绍pycharm 2020年最新激活码(亲测python 中文乱码问题深入分析python中使用xlrd、xlwt操作excepython 求定积分和不定积分示例用python实现名片管理系统pycharm 将django中多个app放到同个文件夹详解ubuntu16.04安装python3.7及其pip3并使用pyinstaller转换.py文件为.exe可执行python爬虫库requests获取响应内容、响应使用python中的cookielib模拟登录网站python面向对象编程中关于类和方法的学习flask 实现token机制的示例代码python使用matplotlib改变坐标轴的默认位
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved