• Selenium2+python自动化之读取Excel数据(xlrd)


    前言

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

    一、环境准备

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

    >>pip install xlrd

    二、基本操作

    exlce基本操作方法如下

    # coding:utf-8
    import xlrd
    
    # 打开excel表格,参数是文件路径
    data = xlrd.open_workbook('test.xlsx')
    
    #  通过索引顺序获取
    # table = data.sheets()[0]
    # table = data.sheet_by_index(0)
    table = data.sheet_by_name("Sheet1")
    
    # 获取一行或一列的值,参数是第几行
    print table.row_values(0)   # 获取第一行的值,返回列表
    print table.col_values(3)   # 获取第一列的值,返回列表
    

    三、封装读取方法

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

     

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

    封装的代码如下:

    # coding:utf-8
    import xlrd
    
    
    class ExcelUtil:
        def __init__(self, excel_path, sheet_name):
            self.data = xlrd.open_workbook(excel_path)
            self.table = self.data.sheet_by_name(sheet_name)
            # 获取第一行作为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 = "test.xlsx"
        sheetName = "Sheet2"
        data = ExcelUtil(filePath, sheetName)
        print data.dict_data()
    

    运行结果如下:

  • 相关阅读:
    Android课程---Activity的跳转与传值(转自网上)
    Android课程---Activity中保存和恢复用户状态
    Android课程---Activity 的生命周期
    Android课程---Activity的创建
    初学JAVA随记——练习写代码(8种数据类型)
    资料——UTF-8
    资料——ASCII码
    初学JAVA随记——8bit(1byte)的取值范围是+127到—128
    初学JAVA随记——变量与常量
    进制转换
  • 原文地址:https://www.cnblogs.com/lingzeng86/p/6793398.html
Copyright © 2020-2023  润新知