APP下载
报价宝  ›  科技  › 

利用python 处理大资料的几个小技巧

报价宝 来源:baojiabao.com 发布时间:2019-11-20 01:07:00 09月30日更新
报价宝综合消息利用python 处理大资料的几个小技巧

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

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

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

01、大型档案的读取效率

面对100w行的大型资料,经过测试各种档案读取方式,得出结论:

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

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

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

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

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

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

1.列表处理

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

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

2. 对于档案属性

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

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

3. 对于字典

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

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

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

读写档案技术,今后会用到测试资料的引数化和测试报告写作功能中~

资料处理技术,今后测试指令码的测试资料处理过程可以用到~

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

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

程式自动触发技术,可用于测试指令码程式的自动执行。

转载自网络 不用于商业宣传 版权归原作者所有,侵权删。

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 汽车价格 笔记本电脑价格 电视机价格 红米手机价格 降噪耳机价格