python xlsx 大文件_Python這樣操作能存儲100多萬行的xlsx文件!Python讓你事半功倍!

(1) 如果excel文件是xls,2003版的,使用xlrd和xlwt庫來對xls文件進行操作

(2) 如果excel文件是xlsx,2007以上版的,使用openpyxl庫來對xlsx文件進行操作

Tips:xlrd、xlwt和openpyxl非python自帶庫,需要進行安裝,可以查看我之前的文章。

如果你在學習Python的過程當中有遇見任何問題,可以加入我的python交流學習qq群:683380553,多多交流問題,互幫互助,群里有不錯的學習教程和開發工具。學習python有任何問題(學習方法,學習效率,如何就業),可以隨時來咨詢我,如果你準備學習大數據,也歡迎加入大數據學習交流qq群683380553,每天與大家分享學習資源哦。

我們使用Python做數據挖掘和分析時候,當數據行超過一定數量,xls文件是存不下的。顯然無法滿足我們的大量數據存儲需求,這個時候需要改用xlsx。

那具體xls和xlsx最大分別可以存多少行呢?

(1) 對于2003版本的xls文件,最大行數是65536行

(2) 對于2007版本的xlsx文件,最大行數是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 = [] # 行數據

col = 1

for cell in row:

lineData.append(cell.value) # 1列1列讀

col = col + 1

list.append(lineData)

return list

操作數據

def operateData(filename):

list = readExcel(filename)

# 去除第一行,第一行是表頭

list.pop(0)

pprint.pprint(list)

pprint.pprint(“先按性別排序,再按身高排序”)

# 要對身高進行排序,但是男女有別

# 先按性別排序,再按身高排序

list.sort(key=lambda ele: (ele[3], ele[4]))

pprint.pprint(list)

獲取Excel標簽列表

比如第5行標簽列表,總共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): # 下標從1開始

datalist = list[i -1] # 讀取1行

col = 1

# 1列1列寫入

for data in datalist:

sheet.cell(i, col, data) #寫入內容

col += 1

# 獲取標簽列表

tagList = getTagList(i, len(datalist))

font = Font(‘微軟雅黑’, size = 14, color = ‘333333’)

# 設置單元格字體、字號、顏色

for tag in tagList:

sheet[tag].font = font # 設置字體

# 保存文件

book.save(outputFilePath)

except Exception as e: # 捕獲異常

print(e)

主函數

if name == “main“:

print(“讀取xlsx格式的數據”)

userList = readExcel(‘user.xlsx’)

print(“寫入xlsx文件”)

writeExcel(“user2.xlsx”, userList)

print(“操作數據”)

operateData(‘user.xlsx’)

image

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276519.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276519.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276519.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux 如何在命令行下改系統時間

我們一般使用“date -s”命令來修改系統時間。比如將系統時間設定成2009年6月1日的命令如下。   #date -s 06/01/2009 或#date -s 20090601 將系統時間設定成下午15點43分0秒的命令如下。   #date -s 15:43:00   注意,這里說的是系統…

拓撲目的 1.Pc9通過van3訪問pc10 2.Pc9通過Vlan1\Vlan2訪問pc11

1拓撲圖2設置路由器R12的接口的IPint g0/0/0ip address 192.168.20.254 24undo shutdown int g0/0/01ip address 192.168.1.1 24undo shutdownint g2/0/00ip address 192.168.3.1 24undo shutdown 3設置路由器R10的接口的IPint g0/0/0ip address 192.168.2.1 24undo shutdownin…

PHP 發送Email的幾種方法

轉載鏈接:http://blog.009it.com/php/75.html 在php中發送Email可以直接調用系統的mail()函數來完成,但是前提是你在php.ini文件中對mail都已經配置好了,以下為相關的配置信息: [mail function] ; For Win32 only. SMTP localho…

學習 lodash 源碼整體架構,打造屬于自己的函數式編程類庫

前言這是 學習源碼整體架構系列第三篇。整體架構這詞語好像有點大,姑且就算是源碼整體結構吧,主要就是學習是代碼整體結構,不深究其他不是主線的具體函數的實現。文章學習的是打包整合后的代碼,不是實際倉庫中的拆分的代碼。上上篇…

python數據庫模糊查詢_Python操作mongodb數據庫進行模糊查詢操作示例

本文實例講述了Python操作mongodb數據庫進行模糊查詢操作。分享給大家供大家參考,具體如下:# -*- coding: utf-8 -*-import pymongoimport refrom pymongo import MongoClient#創建連接#10.20.66.106client MongoClient(10.20.4.79,27017)#client Mong…

推薦一個快速反射調用的類

使用傳統的.net反射機制,調用類的方法時,在調用頻率大的情況下,會感覺速度很慢。最近瀏覽盧彥的博客時,找到一個他改進后的反射調用類。試用以后感覺效率明顯提高,特推薦給大家。作者重新實現了,反射調用方…

CMake 構建項目Android NDK項目基礎知識

本篇文章將介紹如何使用 CMake 構建實現你的第一個 NDK 項目。 ##前言 你好!歡迎來到我的的學習筆記分享系列,第一次給大家分享的是 Android NDK 開發的學習筆記,讓我們先開始了解 NDK 的構建方式吧! NDK 構建方式有兩種&#xff…

linux installaccess Nessus-5.2.4

1、Download: http://www.tenable.com/products/nessus/select-your-operating-system 2、Current version:Nessus-5.2.4-debian6_i386.deb 3、Install:dpkg -i Nessus-5.2.4-debian6_i386.deb # dpkg -i Nessus-5.2.4-debian6_i386.deb Selecting p…

面試官問:JS的繼承

原文作者若川,掘金鏈接:https://juejin.im/post/5c433e216fb9a049c15f841b寫于2019年2月20日,現在發到公眾號聲明原創,之前被《前端大全》公眾號等轉載閱讀量超1w,知乎掘金等累計閱讀量超過1w。導讀:文章主…

qt 快速按行讀取文件_這是知識點之Linux下分割文件并保留文件頭

點擊上方"開發者的花花世界",選擇"設為星標"技術干貨不定時送達!這是一個知識點方便快捷的給結構化數據文件分割大小并保留文件的表頭,幾十個G的結構化文件不僅閱讀編輯麻煩,而且使用受限,因此高效…

mono 調用windows webService

1. 實現linux mono Develop中調用windows 中的webService l linux 與 windows 在一個局域網的網段中 l windows 的IIs中發布webService 2. windows 中的設置 l webService 的代碼 using System; using System.Collections.Generic; using System.Linq; using S…

Linux 內存機制

轉載鏈接:http://blog.csdn.net/tianlesoftware/article/details/5463790 一. 內存使用說明 Free 命令相對于top 提供了更簡潔的查看系統內存使用情況: [rootrac1 ~]# free total used free shared buffers cached Mem: …

network中的請求信息,headers中的每一項分別是什么意義?

這里是修真院前端小課堂,每篇分享文從 【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴展思考】【更多討論】【參考文獻】 八個方面深度解析前端知識/技能,本篇分享的是: 【network中的請求信息,headers中的每…

學習 sentry 源碼整體架構,打造屬于自己的前端異常監控SDK

前言這是學習源碼整體架構第四篇。整體架構這詞語好像有點大,姑且就算是源碼整體結構吧,主要就是學習是代碼整體結構,不深究其他不是主線的具體函數的實現。文章學習的是打包整合后的代碼,不是實際倉庫中的拆分的代碼。其余三篇分…

巴西龜吃什么

1、活蝦,哈哈,巴西龜最喜歡的食物,超市很多雞尾蝦買的,就那種,要活的,鍛煉它們的天性,一次一只可以吃一、兩天; 2、蚶子,貝殼類,活的,整個扔進去&…

綁定dictionary 給定關鍵字不再字典中_VBA代碼集錦-利用字典做兩列數據的對比并對齊...

源數據:代碼:Sub 對比()Dim arr, brr, crrDim i, j, n, lastrowA, lastrowB As Integer建立字典對象Set d CreateObject("scripting.dictionary")獲取數據區域最后一行的行數lastrowA Sheets("對比對齊兩列數據").Cells(Rows.Coun…

linux啟動時掛載rootfs的幾種方式 .

轉載鏈接:http://blog.csdn.net/zuokong/article/details/9022707 根文件系統(在樣例錯誤消息中名為 rootfs)是 Linux 的最基本的組件。根文件系統包含支持完整的 Linux 系統所需的所有內容。它包含所有應用程序、配置、設備、數據等 Linux 中…

PHP 手冊

by:Mehdi AchourFriedhelm BetzAntony DovgalNuno LopesHannes MagnussonGeorg RichterDamien SeguyJakub Vrana其他貢獻者2018-06-19Edited By: Peter Cowburn中文翻譯人員:肖盛文洪建家穆少磊宋琪黃嘯宇王遠之肖理達喬楚戴劼褚兆瑋周夢康袁玉強段小強© 1997-…

前端使用puppeteer 爬蟲生成《React.js 小書》PDF并合并

前端也可以爬蟲,寫于2018年08月29日,現在發布到微信公眾號申明原創。掘金若川 本文章鏈接:https://juejin.im/post/5b86732451882542af1c80821、 puppeteer 是什么?puppeteer: Google 官方出品的 headless Chrome node 庫puppetee…

蜘蛛與佛的故事

最近閉關,空面四壁,窗外層巒疊嶂,窗臺上只有一盆花每日陪著我,朋友們都說我要成佛了,想想也是! 于是在閉關即將結束的時候找了一篇佛的故事送給自己,希望自己能夠頓悟一些"禪"機。 從前,有一座圓音寺,每天都…