python读取表格数据_Python读取Excel数据并根据列名取值
一直想將自己接觸到的東西梳理一遍,可就是邁不出第一步,希望從這篇總結(jié)開始不要再做行動(dòng)的矮人了。
最近測(cè)試過程中需要用到python讀取excel用例數(shù)據(jù),于是去了解和學(xué)習(xí)了下xlrd庫,這里只記錄使用過程中讀取excel數(shù)據(jù)相關(guān)操作。
一、安裝xlrd庫
可以下載xlrd庫包到本地安裝,也可以通過pip命令安裝,這里我選擇pip命令:
pip install xlrd
二、使用xlrd讀取excel數(shù)據(jù)
具體詳細(xì)的操作可以參考xlrd庫操作說明文檔,以下是兩種讀取excel數(shù)據(jù)的方法:
1、根據(jù)Excel中sheet名稱讀取數(shù)據(jù):
def readExcelDataByName(fileName, sheetName):
table = None
errorMsg = None
try:
data = xlrd.open_workbook(fileName)
table = data.sheet_by_name(sheetName)
except Exception, msg:
errorMsg = msg
return table, errorMsg
2、根據(jù)Excel中sheet的序號(hào)獲取:
def readExcelDataByIndex(fileName, sheetIndex):
table = None
errorMsg = ""
try:
data = xlrd.open_workbook(fileName)
table = data.sheet_by_index(sheetIndex)
except Exception, msg:
errorMsg = msg
return table, errorMsg
3、根據(jù)列名獲取相應(yīng)序號(hào),由于有時(shí)讀取excel中列數(shù)據(jù)時(shí),需要通過列頭名稱獲取相應(yīng)的列中的值,所以寫了下面這個(gè)返回列名所在表格中的index。然后就可以直接通過table.cell_value(i, getColumnIndex(table,'列名'))獲取列的值。
def getColumnIndex(table, columnName):
columnIndex = None
for i in range(table.ncols):
if(table.cell_value(0, i) == columnName):
columnIndex = i
break
return columnIndex
下面加入需要讀取如下excel表格中的數(shù)據(jù),在讀取數(shù)據(jù)時(shí)直接根據(jù)列名去獲取相應(yīng)的值。
根據(jù)列名讀取相應(yīng)的值,代碼如下:
#!/usr/bin/python
# coding=utf-8
__author__ = 'Paul'
import xlrd
import chardet
import traceback
def getColumnIndex(table, columnName):
columnIndex = None
#print table
for i in range(table.ncols):
#print columnName
#print table.cell_value(0, i)
if(table.cell_value(0, i) == columnName):
columnIndex = i
break
return columnIndex
def readExcelDataByName(fileName, sheetName):
#print fileName
table = None
errorMsg = ""
try:
data = xlrd.open_workbook(fileName)
table = data.sheet_by_name(sheetName)
except Exception, msg:
errorMsg = msg
return table, errorMsg
def readExcelDataByIndex(fileName, sheetIndex):
table = None
errorMsg = ""
try:
data = xlrd.open_workbook(fileName)
table = data.sheet_by_index(sheetIndex)
except Exception, msg:
errorMsg = msg
return table, errorMsg
if __name__ == '__main__':
#example
xlsfile= 'F:/test_AutoTesting/TestCase/RunList.xlsx'
table = readExcelDataByName(xlsfile, 'Sheet1')[0]
#獲取第一行的值
testcase_id = table.cell_value(1, getColumnIndex(table,'TestCaseID'))
app_config = table.cell_value(1, getColumnIndex(table,'APPConfig'))
print u'測(cè)試用例ID為:%s'%(testcase_id)
print u'配置信息為:%s'%(app_config)
得出結(jié)果如下:
4、讀取excel中的文本或數(shù)值轉(zhuǎn)換成了float的問題
有時(shí)Excel中的值為20,但讀取出來的值卻變成了20.0,這與我們想要的不大一致,特別是做UI自動(dòng)化測(cè)試過程中需要下拉選擇值時(shí)就完全選不出想要的選項(xiàng)了。目前我想到的是通過下面的語句來處理:
if isinstance(inputValue,float): #判斷讀取到的值是否為float
if inputValue==int(inputValue): #判斷讀取到的值與轉(zhuǎn)成int后的值是否相等,如果相等則轉(zhuǎn)成int
inputValue = int(inputValue)
inputValue = str(inputValue) #轉(zhuǎn)成str
python 讀取excel數(shù)據(jù)并將測(cè)試結(jié)果填入Excel
python 讀取excel數(shù)據(jù)并將測(cè)試結(jié)果填入Excel 讀取一個(gè)Excel中的一條數(shù)據(jù)用例,請(qǐng)求接口,然后返回結(jié)果并反填到excel中.過程中會(huì)生成請(qǐng)求回來的文本,當(dāng)然還會(huì)生成一個(gè)xml文件.具體 ...
Python讀取excel 數(shù)據(jù)
1.安裝xlrd 2.官網(wǎng) 通過官網(wǎng)來查看如何使用python讀取Excel,python excel官網(wǎng): http://www.python-excel.org/ 實(shí)例: (1)Excel內(nèi)容 把 ...
Python讀取Excel數(shù)據(jù)
今天一同學(xué)給我發(fā)來一個(gè)Excel文件,讓我?guī)退乙恍┬畔?打開一開 8000多條數(shù)據(jù).自己手工處理是不可能完成的的啦.作為一名程序員,當(dāng)然要用程序來處理.處理生活中的問題當(dāng)然是Python最為方便啦. ...
python讀取excel數(shù)據(jù)并以第一行標(biāo)題加內(nèi)容組成字典格式返回
excel結(jié)構(gòu)如圖所示: 代碼: import xlrd ''' 通用獲取excel數(shù)據(jù) @:param path excel文件路徑 @:param sheet_name excel文件里面shee ...
python讀取excel數(shù)據(jù),并可視化展現(xiàn)
#-*- coding: utf-8 -*- import pandas as pda import matplotlib.pyplot as pyl import matplotlib.font_m ...
python 讀取excel數(shù)據(jù)
import xlrd book = xlrd.open_workbook(file_path)#打開文件 sheet = book.sheet_by_index(0) #獲取第一個(gè)工作簿 print ...
Python 讀取Excel數(shù)據(jù) xlrd
#導(dǎo)入相關(guān)模塊 from xlrd import open_workbook #打開excel file = open_workbook("test.xlsx") #獲取sheet ...
python 讀取excel數(shù)據(jù)插入到另外一個(gè)excel
#-*-coding:utf-8-*- import xlrd import xlwt def excel_copy(dir_from, dir_to, sheet_name): '''從一個(gè)exce ...
Selenium2+python自動(dòng)化之讀取Excel數(shù)據(jù)(xlrd)
前言 當(dāng)?shù)卿浀馁~號(hào)有多個(gè)的時(shí)候,我們一般用excel存放測(cè)試數(shù)據(jù),本節(jié)課介紹,python讀取excel方法,并保存為字典格式. 一.環(huán)境準(zhǔn)備 1.先安裝xlrd模塊,打開cmd,輸入pip inst ...
隨機(jī)推薦
如何:對(duì) SharePoint 列表項(xiàng)隱藏 ECB 中的菜單項(xiàng)
可以通過使用功能框架向編輯控制塊 (ECB) 菜單添加新的自定義操作.但是,您不能使用此方法進(jìn)行相反的操作,即隱藏現(xiàn)有的 ECB 菜單項(xiàng),因?yàn)樗鼈兪峭ㄟ^使用 ECMAScript(JavaScript ...
ajax實(shí)現(xiàn)無刷新上傳附件并且顯示進(jìn)度條的實(shí)例
首先:得把php.ini中的post_max_size和upload_max_filesize改成200M或更大(進(jìn)度條好看效果,默認(rèn)是2M) html和js代碼: ..
【POJ1823】【線段樹】Hotel
Description The "Informatics" hotel is one of the most luxurious hotels from Galaciuc. A l ...
reg 正則
//轉(zhuǎn)化為camel形式 var text = 'border-color-base'; text.replace(/-(\w{1})/g, function (match, chr1) { retu ...
Spring MVC如何測(cè)試Controller(使用springmvc mock測(cè)試)
在springmvc中一般的測(cè)試用例都是測(cè)試service層,今天我來演示下如何使用springmvc mock直接測(cè)試controller層代碼. 1.什么是mock測(cè)試? mock測(cè)試就是在測(cè)試過 ...
element-tree-grid(表格樹)的使用
表格樹,element-tree-grid需要單獨(dú)下載并再配合elementUi里el-table使用. 步驟:1.npm?install?element-tree-grid?--save(下載ele ...
RSP小組——團(tuán)隊(duì)沖刺博客五
RSP小組--團(tuán)隊(duì)沖刺博客五 沖刺日期:2018年12月17日 前言 周末的結(jié)束,我們并沒有完全的休息,對(duì)于這個(gè)項(xiàng)目,以我們的實(shí)力還是需要花費(fèi)更多的時(shí)間. 各成員今日(12.17)完成的任務(wù) 馬瑞蕃由 ...
opencv人臉檢測(cè),旋轉(zhuǎn)處理
年會(huì)簽到,拍自己的大頭照,有的人可能會(huì)拍成橫向的,需要旋轉(zhuǎn),用人臉檢測(cè)并修正它(圖片). 1. 無腦檢測(cè)步驟為: 1. opencv 讀取圖片,灰度轉(zhuǎn)換 2. 使用CascadeClassifier( ...
【托業(yè)】【新托業(yè)TOEIC新題型真題】學(xué)習(xí)筆記3-題庫二->;P5-6
--------------------------------------單詞-------------------------------------- oppose vt. 反對(duì):對(duì)抗,抗?fàn)?v ...
istream_iterator和ostream_iterator
總結(jié): istream_iteratorin(strm);T指明此istream_iterator的輸入類型,strm為istream_iterator指向的流 提供了輸入操作符(& ...
總結(jié)
以上是生活随笔為你收集整理的python读取表格数据_Python读取Excel数据并根据列名取值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python object的实例是什么_
- 下一篇: docker电子书_果然!这10个Doc