python excel和yaml文件的读取封装

2021-01-13 0 388

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 excel和yaml文件的读取封装 http://www.ox520.com/27842.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务