网站首页 > 技术文章 正文
前言:
今天为大家带来的内容是如何用Python处理大数据?3个小技巧助你提升效率(建议收藏)本文具有不错的参考意义,希望能够帮助到大家!
首先,提出个问题:如果你有个5、6 G 大小的文件,想把文件内容读出来做一些处理然后存到另外的文件去,你会使用什么进行处理呢?
解答:不用在线等,给几个错误示范:有人用multiprocessing 处理,但是效率非常低。于是,有人用python处理大文件还是会存在效率上的问题。因为效率只是和预期的时间有关,不会报错,报错代表程序本身出现问题了~
所以,为什么用python处理大文件总有效率问题?
如果工作需要,立刻处理一个大文件,你需要注意两点:
1、大型文件的读取效率
面对100w行的大型数据,经过测试各种文件读取方式,得出结论:
with open(filename,"rb") as f: for fLine in f: pass
方式最快,100w行全遍历2.7秒。
基本满足中大型文件处理效率需求。如果rb改为r,慢6倍。但是此方式处理文件,fLine为bytes类型。但是python自行断行,仍旧能很好的以行为单位处理读取内容。
2、文本处理效率问题
这里举例ascii定长文件,因为这个也并不是分隔符文件,所以打算采用列表操作实现数据分割。但是问题是处理20w条数据,时间急剧上升到12s。本以为是byte.decode增加了时间。遂去除decode全程bytes处理。但是发现效率还是很差。
那么关于python处理大文件的技巧,从网络整理三点:列表、文件属性、字典三个点来看看。
一. 列表处理
def fun(x):尽量选择集合、字典数据类型,千万不要选择列表,列表的查询速度会超级慢,同样的,在已经使用集合或字典的情况下,不要再转化成列表进行操作,比如:
后者的速度会比前者快好多好多。
二. 对于文件属性
如果遇到某个文件,其中有属性相同的,但又不能进行去重操作,没有办法使用集合或字典时,可以增加属性,比如将原数据重新映射出一列计数属性,让每一条属性具有唯一性,从而可以用字典或集合处理:
return '(' + str(x) + ', 1)' list(map(fun,[1,2,3]))
使用map函数将多个相同属性增加不同项。
三. 对于字典
多使用iteritems()少使用items(),iteritems()返回迭代器:
字典的items函数返回的是键值对的元组的列表,而iteritems使用的是键值对的generator,items当使用时会调用整个列表 iteritems当使用时只会调用值。
除了以下5个python使用模块,你还有什么技巧解决大文件运行效率的问题吗?深入了解更多Python实用模块,快速提升工作效率~
以上就是本文的全部内容啦!
最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典等。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。
猜你喜欢
- 2025-06-12 新手学Python避坑,学习效率狂飙! 二、Python 代码缩进
- 2025-06-12 告别Ctrl+C/V!这个Python神器让Excel自动化效率提升500倍
- 2025-06-12 提升 Python 效率,尽在 Pydash —— 高效数据处理的终极工具包
- 2025-06-12 新手学Python避坑,学习效率狂飙! 六、Python 默认可变参数
- 2025-06-12 【团队效率提升】Python-PyWebIO介绍
- 2025-06-12 新手学Python避坑,学习效率狂飙! 三、Python 数据类型
- 2025-06-12 纯Python构建精美UI!MonsterUI让前端开发效率飙升
- 2025-06-12 用好这几个Python高阶函数!效率翻倍
- 2025-06-12 每天一个 Python 库:pandas 办公利器,数据处理效率翻倍!
- 2025-06-12 「Python+Pandas」自动化处理Excel的“分分合合”,非常实用
- 06-15python 打地鼠小游戏(打地鼠小游戏代码)
- 06-15浅析 Python 中的队列类(python队列函数)
- 06-15python委托定制超类getattr和getattribute管理属性
- 06-15python 内置函数 getattr(python内置函数的用法)
- 06-15一文掌握Python 的 getattr函数(python中getattribute)
- 06-15Python 字典 get() 方法:操作指南
- 06-15python入门到脱坑函数—语法详解(python函数教程)
- 06-15python中的流程控制语句:continue、break 和 return使用方法
- 266℃Python短文,Python中的嵌套条件语句(六)
- 265℃python笔记:for循环嵌套。end=""的作用,图形打印
- 264℃PythonNet:实现Python与.Net代码相互调用!
- 259℃Python实现字符串小写转大写并写入文件
- 258℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 118℃原来2025是完美的平方年,一起探索六种平方的算吧
- 99℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 92℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
-
- python 打地鼠小游戏(打地鼠小游戏代码)
- 浅析 Python 中的队列类(python队列函数)
- python委托定制超类getattr和getattribute管理属性
- python 内置函数 getattr(python内置函数的用法)
- 一文掌握Python 的 getattr函数(python中getattribute)
- Python 字典 get() 方法:操作指南
- python入门到脱坑函数—语法详解(python函数教程)
- python中的流程控制语句:continue、break 和 return使用方法
- 在Python中将函数作为参数传入另一个函数中
- Python:读取文本返回关键词及其权重
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)