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.mzph.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…

蜘蛛与佛的故事

最近闭关,空面四壁,窗外层峦叠嶂,窗台上只有一盆花每日陪着我,朋友们都说我要成佛了,想想也是! 于是在闭关即将结束的时候找了一篇佛的故事送给自己,希望自己能够顿悟一些"禅"机。 从前,有一座圆音寺,每天都…