Python這樣操作能存儲(chǔ)100多萬(wàn)行的xlsx文件
(1) 如果excel文件是xls,2003版的,使用xlrd和xlwt庫(kù)來(lái)對(duì)xls文件進(jìn)行操作
(2) 如果excel文件是xlsx,2007以上版的,使用openpyxl庫(kù)來(lái)對(duì)xlsx文件進(jìn)行操作
Tips:xlrd、xlwt和openpyxl非python自帶庫(kù)。
我們使用Python做數(shù)據(jù)挖掘和分析時(shí)候,當(dāng)數(shù)據(jù)行超過(guò)一定數(shù)量,xls文件是存不下的。顯然無(wú)法滿足我們的大量數(shù)據(jù)存儲(chǔ)需求,這個(gè)時(shí)候需要改用xlsx。
那具體xls和xlsx最大分別可以存多少行呢?
(1) 對(duì)于2003版本的xls文件,最大行數(shù)是65536行
(2) 對(duì)于2007版本的xlsx文件,最大行數(shù)是1048576行
閑話不多聊,直接上代碼干貨
!/usr/bin/env python3 - - coding: utf-8 - -
讀寫2007 excel
import pprint import openpyxl import openpyxl.styles from openpyxl.styles import Font,colors
讀取Excel文件
def readExcel(filename): workbook = openpyxl.load_workbook(filename) worksheet = workbook['用戶'] list = [] for row in worksheet.rows: # 1行1行讀 lineData = [] # 行數(shù)據(jù) col = 1 for cell in row: lineData.append(cell.value) # 1列1列讀 col = col + 1 list.append(lineData) return list
操作數(shù)據(jù)
def operateData(filename): list = readExcel(filename)
去除第一行,第一行是表頭
list.pop(0)
pprint.pprint(list)
pprint.pprint("先按性別排序,再按身高排序")
要對(duì)身高進(jìn)行排序,但是男女有別
先按性別排序,再按身高排序
list.sort(key=lambda ele: (ele[3], ele[4])) pprint.pprint(list)
獲取Excel標(biāo)簽列表
比如第5行標(biāo)簽列表,總共4列 ['A5', 'B5', 'C5', 'D5']
def getTagList(index, colNum): tagList = [] for i in range(0, colNum):
A的ascii碼值65
tag = chr(65 + i) + str(index) tagList.append(tag) return tagList
寫入Excel文件
def writeExcel(outputFilePath, list):
book = openpyxl.Workbook()
sheet = book.create_sheet("用戶", 0)
sheet.title = "用戶" # sheet名稱
rowNum = len(list)
try:
1行1行讀取
for i in range(1, rowNum + 1): # 下標(biāo)從1開始 datalist = list[i -1] # 讀取1行 col = 1
1列1列寫入
for data in datalist: sheet.cell(i, col, data) #寫入內(nèi)容 col += 1
獲取標(biāo)簽列表
tagList = getTagList(i, len(datalist))
font = Font('微軟雅黑', size = 14, color = '333333')
設(shè)置單元格字體、字號(hào)、顏色
for tag in tagList: sheet[tag].font = font # 設(shè)置字體
保存文件
book.save(outputFilePath) except Exception as e: # 捕獲異常 print(e)
主函數(shù)
if name == " main ":
print("讀取xlsx格式的數(shù)據(jù)")
userList = readExcel('user.xlsx')
print("寫入xlsx文件")
writeExcel("user2.xlsx", userList)
print("操作數(shù)據(jù)")
operateData('user.xlsx')

總結(jié)
以上所述是小編給大家介紹的Python這樣操作能存儲(chǔ)100多萬(wàn)行的xlsx文件,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- Python讀取xlsx文件的實(shí)現(xiàn)方法
- python使用xlrd模塊讀取xlsx文件中的ip方法
- python3讀取csv和xlsx文件的實(shí)例
- 使用python庫(kù)xlsxwriter庫(kù)來(lái)輸出各種xlsx文件的示例
- Python3讀寫Excel文件(使用xlrd,xlsxwriter,openpyxl3種方式讀寫實(shí)例與優(yōu)劣)
- python寫入數(shù)據(jù)到csv或xlsx文件的3種方法
- Python使用pandas和xlsxwriter讀寫xlsx文件的方法示例
- 對(duì)python中xlsx,csv以及json文件的相互轉(zhuǎn)化方法詳解
- Python學(xué)習(xí)_幾種存取xls/xlsx文件的方法總結(jié)
- python操作xlsx文件的包openpyxl實(shí)例
- python實(shí)現(xiàn)xlsx文件分析詳解
- Python操作Excel之xlsx文件
- 用python讀取xlsx文件
相關(guān)文章
python自動(dòng)化測(cè)試中裝飾器@ddt與@data源碼深入解析
最近工作中接觸了python自動(dòng)化測(cè)試,所以下面這篇文章主要給大家介紹了關(guān)于python自動(dòng)化測(cè)試中裝飾器@ddt與@data源碼解析的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
python 自動(dòng)重連wifi windows的方法
今天小編就為大家分享一篇python 自動(dòng)重連wifi windows的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
Python第三方庫(kù)face_recognition在windows上的安裝過(guò)程
今天為大家介紹下face recognition在Windows系統(tǒng)上安裝與使用,但在Windows平臺(tái)上face recognition性能會(huì)有所下降2019-05-05
這3個(gè)Python實(shí)時(shí)可視化工具包來(lái)幫你了解性能瓶頸
由于Python的動(dòng)態(tài)性和多功能性,它比其他語(yǔ)言的速度要慢.有時(shí)復(fù)雜的計(jì)算或算法需要大量時(shí)間才能在Python中執(zhí)行.因此需要跟蹤代碼的執(zhí)行流,深入了解性能瓶頸,需要的朋友可以參考下2021-06-06
python調(diào)用另外一個(gè)py文件中函數(shù)的具體步驟
這篇文章主要給大家介紹了關(guān)于python調(diào)用另外一個(gè)py文件中函數(shù)的具體步驟,要在一個(gè)Python文件中調(diào)用其他Python文件中的方法,可以使用Python的模塊導(dǎo)入功能,需要的朋友可以參考下2023-11-11
Python:__eq__和__str__函數(shù)的使用示例
這篇文章主要介紹了Python:__eq__和__str__函數(shù)的使用示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-09-09
詳解JavaScript編程中的window與window.screen對(duì)象
這篇文章主要介紹了JavaScript編程中的window與window.screen對(duì)象,是JS在瀏覽器中視圖編程的基礎(chǔ),需要的朋友可以參考下2015-10-10
Python操作MongoDB數(shù)據(jù)庫(kù)的方法示例
這篇文章主要介紹了Python操作MongoDB數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例形式分析了Python命令行模式下操作MongoDB數(shù)據(jù)庫(kù)實(shí)現(xiàn)連接、查找、刪除、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
python中字符串類型json操作的注意事項(xiàng)
這篇文章主要給大家介紹了python中字符串類型json操作的一些注意事項(xiàng),文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05

