python excel和yaml文件的读取封装


Posted in Python onJanuary 12, 2021

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)

python excel和yaml文件的读取封装

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 相关文章推荐
python里对list中的整数求平均并排序
Sep 12 Python
Python os模块介绍
Nov 30 Python
python通过文件头判断文件类型
Oct 30 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
python并发和异步编程实例
Nov 15 Python
详解重置Django migration的常见方式
Feb 15 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
python文件写入write()的操作
May 14 Python
tensorflow 变长序列存储实例
Jan 20 Python
Pytorch 使用CNN图像分类的实现
Jun 16 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
如何利用Matlab制作一款真正的拼图小游戏
May 11 Python
python drf各类组件的用法和作用
Jan 12 #Python
Python try except else使用详解
Jan 12 #Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 #Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
Jan 12 #Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 #Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 #Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 #Python
You might like
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
jQuery 入门讲解1
2009/04/15 Javascript
jQuery 使用手册(三)
2009/09/23 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
Javascript中的 “&” 和 “|” 详解
2017/02/02 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
创建精神文明单位实施方案
2014/03/08 职场文书
房产代理公证处委托书
2014/04/04 职场文书
小学生手册家长评语
2014/04/16 职场文书
中学清明节活动总结
2014/07/04 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
辞职信范文大全
2015/03/02 职场文书
KTV员工管理制度
2015/08/06 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python