zoukankan      html  css  js  c++  java
  • Selenium2+python自动化58-读取Excel数据(xlrd)【转载】

    前言

    当登录的账号有多个的时候,我们一般用excel存放测试数据,本节课介绍,python读取excel方法,并保存为字典格式。

    一、环境准备

    1.先安装xlrd模块,打开cmd,输入pip install xlrd在线安装

    >>pip install xlrd

    二、基本操作

    1.exlce基本操作方法如下

    # 打开exlce表格,参数是文件路径
    data = xlrd.open_workbook('test.xlsx')

    # table = data.sheets()[0]           #  通过索引顺序获取
    # table = data.sheet_by_index(0)     #  通过索引顺序获取
    table = data.sheet_by_name(u'Sheet1')  # 通过名称获取

    nrows = table.nrows  # 获取总行数
    ncols = table.ncols  # 获取总列数

    # 获取一行或一列的值,参数是第几行
    print table.row_values(0)  # 获取第一行值
    print table.col_values(0)  # 获取第一列值

    三、excel存放数据

    1.在excel中存放数据,第一行为标题,也就是对应字典里面的key值,如:username,password

    2.如果excel数据中有纯数字的一定要右键》设置单元格格式》文本格式,要不然读取的数据是浮点数

    (先设置单元格格式后编辑,编辑成功左上角有个小三角图标)

    四、封装读取方法

    1.最终读取的数据是多个字典的list类型数据,第一行数据就是字典里的key值,从第二行开始一一对应value值

    2.封装好后的代码如下

    # coding:utf-8
    import xlrd
    class ExcelUtil():
        def __init__(self, excelPath, sheetName):
            self.data = xlrd.open_workbook(excelPath)
            self.table = self.data.sheet_by_name(sheetName)
            # 获取第一行作为key值
            self.keys = self.table.row_values(0)
            # 获取总行数
            self.rowNum = self.table.nrows
            # 获取总列数
            self.colNum = self.table.ncols

        def dict_data(self):
            if self.rowNum <= 1:
                print("总行数小于1")
            else:
                r = []
                j=1
                for i in range(self.rowNum-1):
                    s = {}
                    # 从第二行取对应values值
                    values = self.table.row_values(j)
                    for x in range(self.colNum):
                        s[self.keys[x]] = values[x]
                    r.append(s)
                    j+=1
                return r

    if __name__ == "__main__":
        filepath = "D:\test\web-project\5ke\testdata.xlsx"
        sheetName = "Sheet1"
        data = ExcelUtil(filepath, sheetName)
        print data.dict_data()

    运行结果:

    [{u'username': u'pythonu7fa4', u'password': u'226296743'},

    {u'username': u'seleniumu7fa4', u'password': u'232607095'},

    {u'username': u'appiumu7fa4', u'password': u'512200893'}]

  • 相关阅读:
    基本指令
    javascript event(事件对象)详解
    Sass进阶之路,之二(进阶篇)
    Sass进阶之路,之一(基础篇)
    原型链进阶
    数据类型检测
    JavaScript引用类型和值类型
    i.mx6 Android6.0.1分析input子系统:测试
    (三)JNI常用示例
    (二)JNI方法总结
  • 原文地址:https://www.cnblogs.com/caoj/p/7814273.html
Copyright © 2011-2022 走看看