程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Python+Selenium】 實現對excel文件的讀寫操作,輕輕松松一步到位

編輯:Python

利用selenium在做自動化測試的時候,經常會用到數據來做批量測試,常用的方式有讀取txt文件,xml文件,csv文件以及excel文件幾種。

使用 excel 來做數據管理時,需要利用 xlrd、xlwt 開源包來讀寫 excel。

1、安裝xlrd、xlwt

pip install xlrd
pip install xlwt

2、對excel表的數據讀取操作

在C:\Users\Any\Desktop下,我們有一個名字叫test1的excel文件,裡面的Sheet1數據表中有如下數據:

我們期望從上表中獲取搜索詞,並在百度輸入框中進行關鍵字搜索。首先需要導入xlrd和xlwt,因為運行速度太快,為了方便看清楚我這邊在每輸入一次關鍵詞後強制sleep了兩秒。

from selenium
python學習交流Q群:660193417 ###
import webdriverfrom selenium.webdriver.support.
wait import WebDriverWaitfrom selenium.
webdriver.support import expected_conditionsfrom selenium.webdriver.common.
by import Byimport timeimport xlrd,xlwtif __name__=="__main__":
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
file_test=xlrd.open_workbook(r"C:\Users\Any\Desktop\test1.xlsx")#讀取test1.xlsx文件
count=len(file_test.sheets())#獲取該文件中的工作簿數 print("工作簿總數為:",count) table1=file_test.sheet_by_name("Sheet1")#根據工作簿名字獲取該工作簿的數據
nrows=table1.nrows #獲取工作簿行數 ncols=table1.ncols #獲取工作簿列數
print("Sheet1的行數為:",nrows,"列數為:",ncols) #從第二行開始,遍歷Sheet1中的數據(第一行為表頭)
for i in range(1,nrows):
rowvalues=table1.row_values(i) #按行讀取數據
key=rowvalues[1] #第一列為序號,我們取第二列的搜索詞
print("搜索詞:",key)
driver.find_element_by_id("kw").clear()#清空搜索框中的內容
driver.find_element_by_id("kw").send_keys(key) #根據搜索詞填入百度搜索框 WebDriverWait(driver,3).until(expected_conditions.visibility_of_element_located((By.ID,"su")))#顯性等待 driver.find_element_by_id("su").click()#點擊百度一下按鈕
time.sleep(2)
driver.quit()

運行之後就會看到print出來的數據如上,可以確認我們的數據是沒錯的。print一下也可以方便調試。從浏覽器中也可以直觀的感

受到整個搜索過程的。

對工作簿的讀操作還有很多,如下有一下較為常用的幾個。

打開文件

data = xlrd.open_workbook("file_path") #打開文件

獲取一個工作簿

方式也有幾種,上面代碼我們是通過工作簿的名字進行獲取的。

table=data.sheets()[0] #通過索引順序獲取table=data.sheet_by_index(0) #通過索引順序獲取table=data.sheet_by_name(u"name") #通過名稱獲取

獲取某個工作簿的行列數

table.nrows #獲取行數
table.nrows #獲取列數

獲取某個工作簿的行列值(數組)

table.row_values(i) #獲取某行值
table.col_values(i) #獲取某列值

獲取某個單元格的值

cell_A1 = table.cell(0,0).value #獲取A1單元格的值
cell_A1 = table.row(0)[0].value #通過行索引單元格A1的值
cell_A1 = table.col(0)[0].value #通過列索引單元格A1的值

3、對Excel文件的寫操作

import xlrd,xlwtif __name__=="__main__":
wookbook = xlwt.Workbook() #創建工作簿
sheet1 = wookbook.add_sheet('Sheet_one',cell_overwrite_ok=True) #創建sheet,名字為Sheet_one
headlist = ['序號','關鍵字','備注'] #表頭數據 row = 0 col = 0 #寫入表頭數據 for head in headlist: sheet1.write(row,col,head)
col=col+1 #寫入4行數據 len = 5 for i in range(1,len):
sheet1.write(i,0,i)
sheet1.write(i,1,"搜索關鍵字{}".format(i))
sheet1.write(i,2," ")
print("寫入第{}行數據".format(i))
wookbook.save(r"C:\Users\Any\Desktop\xlwt_text.xlsx") #保存文件,命名為xlwt_text.xlsx

運行之後,可以看到桌面上生成了一個xlwt_text.xlsx的文件,打開看到裡面的數據,sheet名和其內容都是我們剛剛輸入的數據

對於Excel的數據寫入操作,有以下幾個常用的幾個。

創建excel文件
wookbook = xlwt.Workbook() #創建工作簿
創建Sheet
sheet = wookbook.add_sheet('Sheet_name',cell_overwrite_ok=True) #創建sheet
寫入單元格數據
sheet.write(row,col,data) #寫入該單元格數據
保存文件
wookbook.save(file_path) #保存

最後

你學會了嗎?這麼簡單別跟我說沒有學會,有問題的記得點贊評論喲!!

我是小熊貓,咱下篇文章見(*◡‿◡)


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved