1. 程式人生 > >Selenium2+python自動化58-讀取Excel數據(xlrd)【轉載】

Selenium2+python自動化58-讀取Excel數據(xlrd)【轉載】

filepath image index all 參數 init -1 else 編輯

前言

當登錄的賬號有多個的時候,我們一般用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‘python\u7fa4‘, u‘password‘: u‘226296743‘},

{u‘username‘: u‘selenium\u7fa4‘, u‘password‘: u‘232607095‘},

{u‘username‘: u‘appium\u7fa4‘, u‘password‘: u‘512200893‘}]

Selenium2+python自動化58-讀取Excel數據(xlrd)【轉載】