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()

运行结果如下:

 

posted @ 2017-05-01 22:50  落花无意溪自流  阅读(6348)  评论(0编辑  收藏  举报