Python如何处理大数据?3个技巧效率提升攻略(推荐)


Posted in Python onApril 15, 2019

如果你有个5、6 G 大小的文件,想把文件内容读出来做一些处理然后存到另外的文件去,你会使用什么进行处理呢?不用在线等,给几个错误示范:有人用multiprocessing 处理,但是效率非常低。于是,有人用python处理大文件还是会存在效率上的问题。因为效率只是和预期的时间有关,不会报错,报错代表程序本身出现问题了~

所以,为什么用python处理大文件总有效率问题?

如果工作需要,立刻处理一个大文件,你需要注意两点:

01、大型文件的读取效率

面对100w行的大型数据,经过测试各种文件读取方式,得出结论:

with open(filename,"rb") as f:
 for fLine in f:
 pass

方式最快,100w行全遍历2.7秒。

基本满足中大型文件处理效率需求。如果rb改为r,慢6倍。但是此方式处理文件,fLine为bytes类型。但是python自行断行,仍旧能很好的以行为单位处理读取内容。

02、文本处理效率问题

这里举例ascii定长文件,因为这个也并不是分隔符文件,所以打算采用列表操作实现数据分割。但是问题是处理20w条数据,时间急剧上升到12s。本以为是byte.decode增加了时间。遂去除decode全程bytes处理。但是发现效率还是很差。

最后用最简单方式测试,首次运行,最简单方式也要7.5秒100w次。

想知道这个方式处理的完整代码是什么吗?扫描文末二维码,联系小编可以获取哦~

那么关于python处理大文件的技巧,从网络整理三点:列表、文件属性、字典三个点来看看。

1.列表处理

def fun(x):尽量选择集合、字典数据类型,千万不要选择列表,列表的查询速度会超级慢,同样的,在已经使用集合或字典的情况下,不要再转化成列表进行操作,比如:

values_count = 0
# 不要用这种的
if values in dict.values():
 values_count += 1
# 尽量用这种的
if keys,values in dict:
 values_count += 1

后者的速度会比前者快好多好多。

2. 对于文件属性

如果遇到某个文件,其中有属性相同的,但又不能进行去重操作,没有办法使用集合或字典时,可以增加属性,比如将原数据重新映射出一列计数属性,让每一条属性具有唯一性,从而可以用字典或集合处理:

return '(' + str(x) + ', 1)'
list(map(fun,[1,2,3]))

使用map函数将多个相同属性增加不同项。

3. 对于字典

多使用iteritems()少使用items(),iteritems()返回迭代器:

>>> d = {'a':1,'b':2}
>>> for i in d.items() :
.... print i
('a',1)
('b',2)
>>> for k,v in d.iteritems() :
... print k,v
('a',1)
('b',2)

字典的items函数返回的是键值对的元组的列表,而iteritems使用的是键值对的generator,items当使用时会调用整个列表 iteritems当使用时只会调用值。

除了以下5个python使用模块,你还有什么技巧解决大文件运行效率的问题吗?深入了解更多Python实用模块,快速提升工作效率~

读写文件技术,今后会用到测试数据的参数化和测试报告写作功能中~

数据处理技术,今后测试脚本的测试数据处理过程可以用到~

数据统计分析技术,今后会在测试结果分析中用到

图表展示技术,在今后的测试框架中相关测试报告会用到

程序自动触发技术,可用于测试脚本程序的自动执行。

以上所述是小编给大家介绍的Python如何处理大数据?3个技巧效率提升攻略详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python的迭代器和生成器使用实例
Jan 14 Python
python登陆asp网站页面的实现代码
Jan 14 Python
Python栈类实例分析
Jun 15 Python
全面了解python中的类,对象,方法,属性
Sep 11 Python
详解Python import方法引入模块的实例
Aug 02 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
Dec 18 Python
对Python3 * 和 ** 运算符详解
Feb 16 Python
在django admin中添加自定义视图的例子
Jul 26 Python
使用Python进行中文繁简转换的实现代码
Oct 18 Python
Python3 A*寻路算法实现方式
Dec 24 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
Python内置的数据类型及使用方法
Apr 13 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 #Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 #Python
10招!看骨灰级Pythoner玩转Python的方法
Apr 15 #Python
Python后台开发Django会话控制的实现
Apr 15 #Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 #Python
提升Python程序性能的7个习惯
Apr 14 #Python
Python根据当前日期取去年同星期日期
Apr 14 #Python
You might like
php的access操作类
2008/04/09 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
js中getter和setter用法实例分析
2018/08/14 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
Python算法之图的遍历
2017/11/16 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
python list转矩阵的实例讲解
2018/08/04 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
Python作用域与名字空间原理详解
2020/03/21 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
CSS实现进度条和订单进度条的示例
2020/11/05 HTML / CSS
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
优秀团干部个人事迹
2014/05/29 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
忠诚教育学习心得体会
2016/01/23 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript