經過xlrd和xlwt模塊讀寫excel文件

歡迎關注」生信修煉手冊」!
xlrd模塊用於讀取excel文件,xlwt模塊用於寫入excel文件,兩者搭配,能夠靈活的操做excel文件。相比openpyxl模塊,xlrd和xlwt能夠操做不只能夠操做後綴爲xlsx的文件,也能夠操做後綴爲xls的文件。
首先來看下xlrd模塊,按照workbook, sheet,cell的3個層級,用法以下

1. workbookweb

經過open_workbook方法來獲取對應的workbook,代碼以下數據庫

>>> import xlrd
>>> workbook = xlrd.open_workbook('input.xlsx')
2. sheet

從workbook出發,能夠經過整數下標索引或者對應的sheet name, 訪問具體的sheet對象,代碼以下微信

# 返回sheet的個數
>>> workbook.nsheets
4
# 返回sheet構成的list
>>> workbook.sheets()
[<xlrd.sheet.Sheet object at 0x02FFBC70>, <xlrd.sheet.Sheet object at 0x02FFBCB8>, <xlrd.sheet.Sheet object at 0x02FFBD00>, <xlrd.sheet.Sheet object at 0x02FFBD18>]
>>> workbook.sheets()[0]
<xlrd.sheet.Sheet object at 0x02FFBC70>
# 經過索引訪問sheet
>>> workbook.sheet_by_index(0)
<xlrd.sheet.Sheet object at 0x02FFBC70>
# 返回sheet names構成的list
>>> workbook.sheet_names()
['all_gene', 'target_gene', 'filter_gene', 'cnv_result']
# 經過name訪問sheet
>>> workbook.sheet_by_name('all_gene')
<xlrd.sheet.Sheet object at 0x02FFBC70>

3. cellapp

從sheet對象出發,能夠訪問對應的行,列以及單元格,代碼以下less

>>> ws = workbook.sheet_by_name('all_gene')
>>> ws.name
'all_gene'
# 返回行數
>>> ws.nrows
27280
# 返回列數
>>> ws.ncols
21
# 經過行列索引,返回cell對象
>>> ws.cell(0, 0)
text:'gene'
# 經過行列索引,返回cell對應的值
>>> ws.cell_value(0,0)
'gene'
# 經過如下函數對行或者列進行切片操做
# 第一個參數爲列的索引
# 第二個參數爲起始行
# 第三個參數爲終止行
# 返回值
>>> ws.col_values(0, 0, 2)
['gene', 'LOC102725121']
# 返回cell對象
>>> ws.col_slice(0, 0, 2)
[text:'gene', text:'LOC102725121']

實際操做中,常常須要按照遍歷excel文件,對應的代碼以下
編輯器

>>> for row in ws.get_rows():
...     print(row[0].value)

get_rows方法行的生成器,經過遍歷該生成器,訪問每一行的元素,而後經過下標來訪問對應的列元素,獲得cell對象,經過cell對象的value屬性獲取單元格對應的值。函數

對於xlwt模塊而言,其基本用法就簡單不少,代碼以下學習

>>> import xlwt
>>> wb = xlwt.Workbook()
>>> ws = wb.add_sheet('sheet1')
# 單元格寫入的兩種方式
# 第一種
>>> ws.write(0,0,'A1')
# 第二種
>>> ws.row(1).write(0,'A2')
>>> wb.save('out.xls')

結合xlrd和xlwt模塊,就能夠方便靈活的讀寫excel文件了flex

·end·
—若是喜歡,快分享給你的朋友們吧—

原創不易,歡迎收藏,點贊,轉發!生信知識浩瀚如海,在生信學習的道路上,讓咱們一塊兒並肩做戰!url

本公衆號深耕耘生信領域多年,具備豐富的數據分析經驗,致力於提供真正有價值的數據分析服務,擅長個性化分析,歡迎有須要的老師和同窗前來諮詢。
  更多精彩
  寫在最後
轉發本文至朋友圈,後臺私信截圖便可加入生信交流羣,和小夥伴一塊兒學習交流。

掃描下方二維碼,關注咱們,解鎖更多精彩內容!

一個只分享乾貨的

生信公衆號




本文分享自微信公衆號 - 生信修煉手冊(shengxinxiulian)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索