1、Python讀寫Excel文件
Python讀寫Excel文件可以做以下操作:
使用openpyxl模塊讀寫XLSX格式文件
使用xlrd模塊讀寫XLS格式的文件
使用xlwt模塊生成XLS格式的文件
Excel 文件有兩種格式,分別對應(yīng) .xls 和 .xlsx 兩種擴(kuò)展名(XLS 格式和 XLSX 格式)角钩。前者使用 97-2003 模板赚抡,是早期的文件格式爬坑,現(xiàn)在已經(jīng)逐漸被后者所淘汰,但仍然會遇到 XLS 格式的數(shù)據(jù)文件需要處理涂臣。
openpyxl 模塊專門用于讀寫 XLSX 格式的文件盾计,xlrd 模塊和 xlwt 模塊則專門用于讀寫 XLS 格式的數(shù)據(jù)文件。這 3 個(gè)模塊都可以使用?pip 命令安裝赁遗。如果不需要處理 XLS 格式的數(shù)據(jù)文件署辉,那么只需要安裝 openpyxl 模塊就可以了。
下面的代碼演示了如何使用 openpyxl 模塊編輯 XLSX 格式的 Excel 文件岩四。
?>>> from openpyxl import load_workbook
>>> wb = load_workbook(r"D:\NumPyFamily\data\ionosphere.xlsx")
>>> wb.sheetnames
['電離層']
>>> sh = wb["電離層"] # 選擇表
>>> sh.max_row # 有效行數(shù)
351
>>> sh.max_column # 有效列數(shù)
34
>>> sh['C1'] # 返回C1單元格對象
<Cell '電離層'.C1>
>>> sh['C1'].value # 返回C1單元格內(nèi)容
0.99539
>>> sh[1][2].value # 也可以這樣指定單元格
0.99539
>>> sh['C1'].value = 99.99 # 修改單元格內(nèi)容
>>> wb.save(r"D:\NumPyFamily\data\ionosphere_demo.xlsx") # 保存文件
下面的代碼演示了如何使用 openpyxl 模塊創(chuàng)建 XLSX 格式的 Excel 文件哭尝。
?>>> from openpyxl import Workbook
>>> wb = Workbook() # 創(chuàng)建book
>>> sh0 = wb.active # 激活默認(rèn)的sheet
>>> sha = wb.create_sheet("成績表") # 創(chuàng)建新表
>>> shb = wb.create_sheet("收支表") # 創(chuàng)建新表
>>> sha.append(['姓名','語文','數(shù)學(xué)']) # 可以在末尾追加一行
>>> sha.append(['Alice',95,99])
>>> sha['B2'] = 98 # 也可以單獨(dú)寫單元格
>>> wb.sheetnames # 顯示全部表名
['Sheet', '成績表', '收支表']
>>> del wb['Sheet'] # 刪除表
>>> wb.save(r"D:\NumPyFamily\data\demo.xlsx") # 保存文件
2、使用 xlrd 模塊讀寫 XLS 格式的文件
使用 xlrd 模塊讀寫 Excel 文件的方法與使用 openpyxl 模塊讀寫 Excel 文件非常類似剖煌。用 xlrd 模塊打開一個(gè) Excel 文件材鹦,返回的是一個(gè) book 對象;使用 sheet 名或序號從 book 的數(shù)據(jù)表中選擇一個(gè) sheet末捣,即可從中讀取數(shù)據(jù)侠姑。
下面的代碼演示了使用?xlrd 模塊從 Excel 文件中讀取數(shù)據(jù)的方法。
? >>> import xlrd
>>> book = xlrd.open_workbook(r"D:\NumPyFamily\data\ionosphere.xls")
>>> book.sheet_names() # 獲取全部表名
['電離層']
>>> sh = book.sheet_by_name('電離層') # 通過表名取得sheet對象
>>> sh = book.sheet_by_index(0) # 通過索引取得sheet對象
>>> sh.nrows # 有效行數(shù)
351
>>> sh.ncols # 有效列數(shù)
34
>>> sh.row_values(3, start_colx=3, end_colx=8) # 讀取第3行的第3列到第8列的值 [-0.45161, 1.0, 1.0, 0.71216, -1.0]
>>> sh.col_values(2, start_rowx=3, end_rowx=10) # 讀取第2列的第3行到第10行的值 [1.0, 1.0, 0.02337, 0.97588, 0.0, 0.96355, -0.01864]
>>> sh.cell_value(3,4) # 返回第3行第4列的值
1.0
3.使用 xlwt 模塊生成 XLS 格式的文件
使用 xlwt 模塊只能生成新的 Excel 文件箩做,不能對已有的 Excel 文件進(jìn)行編輯莽红。其使用方法與使用 xlrd 讀取 Excel 文件有點(diǎn)類似,首先創(chuàng)建一個(gè) book 對象邦邦,然后添加 sheet安吁,并對 sheet 做寫入操作。另外燃辖,xlwt 模塊還提供了單元格鬼店、字體、邊框等樣式的設(shè)置方法黔龟。
當(dāng)然妇智,還可以利用 Python 讀寫其它格式的文件滥玷,例如HDF文件、CSV文件等巍棱,具體內(nèi)容可參見《Python 高手修煉之道 數(shù)據(jù)處理與機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》惑畴。
以上就是簡單數(shù)據(jù)文件讀寫的具體操作啦,無論是小白練手航徙,還是白領(lǐng)辦公都非常適用如贷。