python怎么读文件后删去空格以行为单位进行排序-python 大文件以行为单位读取方式比对...
先前需要做一个使用python读取大文件(大于1G),并逐条存入内存进行处理的工作。做了很多的尝试,最终看到了如下的文章。
该文章实际上提供了集中读取大文件的方式,先经过测试总结如下
1. for line in fileHandle:
该方式是最快速的。而且python虚拟机在内部帮助我们对buffer进行管理,内存占用量小,且不差错。
2. fileinput方式
该方式实际效果较慢,但是也有buffer管理功能
3. (自己摸索和尝试的)使用file.read(sizeHint)的方式进行区块读取
该方法是三者中最慢的,而且需要自己去控制内存和选择需要的区域,所以在读到的buffer之后,还需要进行拆分工作,比较麻烦,而且容易出错。最无奈的是,使用下来(我的环境是2.6和2.7),sizeHint作用较小,原来觉得如果sizeHint是1024,则每次在内存中只会驻留1024B的内容,但是实际上不是这样的,在度过一次1024B之后,再次读取1024B的时候,尽管已经对之前的buf进行了del操作,但是该1024B仍然存留于内存中,所以内存越吃越大,最终MemoryError。
4. file.readline和file.readlines
和read类似,只适用于小文件。
结论:
在使用python进行大文件读取时,应该返璞归真,使用最简单的方式,交给解释器,就管好自己的工作就行了。
附,实测数据(这里的数据是我的程序的实际运行情况,在程序中其实读了两个差不多大小的文件,并做了一定逻辑处理,所以绝对值是没有意义的,但是相对比较值很能够说明情况)
1. 大文件(>1.4G)
所使用的方式
size_hint
所使用时间
for i in open(...)
/
103.382492s
fileinput
/
131.525755s
file.read和buffer控制
2亿B
报错:memoryError
2. 小文件(西游记的txt,大约1.4M)
所使用的方式
size_hint
所使用时间
for i in open(...)
/
2.11s
fileinput
/
4.22s
file.read和buffer控制
2亿B
4.07s
python怎么读文件后删去空格以行为单位进行排序-python 大文件以行为单位读取方式比对...相关推荐
- python怎么读文件后删去空格以行为单位进行排序-文件操作
day15回顾 迭代器 iter(iterable) 返回迭代器 next(iterator) 返回可迭代对象提供的数据,当没有数据时触发StopIteration异常通知 生成器: 两种: 生成器函 ...
- python csv 大文件_Python性能调优:JSON到CSV,大文件
一位同事要求我将"yelp数据集挑战"中的6个大文件从"扁平"的常规JSON转换为CSV(他认为这些文件看起来像有趣的教学数据). 我想我可以用: 1 2 3 ...
- python断点续传下载_Python 3 爬虫|第12章:并发下载大文件 支持断点续传
1. stream 流式下载大文件 1.1 stream=True 和 iter_content() 我们将继续使用 Python 3 爬虫|第3章:同步阻塞下载 所搭建的测试环境,在 Nginx 默 ...
- php 超过100m文件上传,科技常识:apache+php上传大文件以上传100M为例
科技常识:apache+php上传大文件以上传100M为例 2021-03-19 18:54:57 今天小编跟大家讲解下有关apache+php上传大文件以上传100M为例 ,相信小伙伴们对这个话题应 ...
- 大文件分片上传前端框架_无插件实现大文件分片上传,断点续传
文件上传.gif 1. 简介: 本篇文章基于实际项目的开发,将介绍项目中关于大文件分片上传.文件验证.断点续传.手动重试上传等需求的使用场景及实现: 2. 项目需求 在一个音视频的添加中,既要有音视频 ...
- ssm上传文件进度条_SSM框架+Plupload实现分块上传大文件示例
关于Plupload的介绍,相信它的官网http://www.plupload.com/已经给得很详细了.Plupload的上传原理简单点说,就是将用户选中的文件(可多个)分隔成一个个小块,依次向服务 ...
- java写入excel文件内存不足,java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) excel 工具框架...
产品需求 产品经理需要导出一个页面的所有的信息到 EXCEL 文件. 需求分析 对于 excel 导出,是一个很常见的需求. 最常见的解决方案就是使用 poi 直接同步导出一个 excel 文件. 客 ...
- mysql数据文件有10g_百万行mysql数据库优化和10G大文件上传方案
最近这几天正在忙这个优化的方案,一直没时间耍,忙碌了一段时间终于还是拿下了这个项目?项目中不要每次都把程序上的问题,让mysql数据库来承担,它只是个mysql而已. 问题1:针对MySQL Comm ...
- linux 中将文件设置密码,linux – 如何使用公钥在openssl中加密大文件
如何使用公钥加密大文件,以便没有人除了拥有私钥的人能够解密? 我可以使RSA公钥和私钥,但当涉及到使用此命令加密大文件: openssl rsautl -encrypt -pubin -inkey p ...
最新文章
- DeepChem | Windows 10下anaconda3环境从源码构建并安装deepchem
- COND SWITCH 操作符
- 神策学堂“训练营+特训营”,种子学员招募中,来一起出圈呀!
- 考研英语核心词汇辨析(黑魔方系列2007版之十二)
- You get a dream...you gotta protect it.
- python 字符串格式化语法_Python基础语法--字符串格式化
- RabbitMQ (一) MQ介绍以Linux下RabbitMq环境安装
- ajax代码原理,关于Ajax的原理以及代码封装详解
- 基于python的性能测试工具_基于 Python 的性能测试工具 locust 与 LR 的简单对比[转发]...
- oracle学习笔记之pI/sql视频小结
- Problem C: 哈夫曼树
- 不懂技术的小白,使用电商网站建设工具有什么注意事项?
- 谷歌浏览器设置信任_Win10谷歌浏览器添加信任网址/站点的方法
- 贪心科技机器学习训练营(二)
- vscode :code runner运行include多个文件的cpp
- 招聘人员最喜欢问的问题有哪些
- python在abaqus中的应用pdf_Python语言在Abaqus中的应用
- java华容道代码_Java 华容道完整源码
- android 服务检测,Android检测某个服务是否还活着代码
- 基于单片机c语言的豆浆机,基于单片机的全自动豆浆机控制系统设计.doc
热门文章
- 手机桌面隐藏大师_受够了内置主题?扒一扒Windows 10隐藏主题
- 服务器发消息给所有人,我需要服务器向所有客户端(Python、sockets)发送消息...
- python调用php命令行,python调用php函数 python怎样调用php文件中的函数详解
- 怎样开启mysql慢检查_如何开启mysql的慢查询
- hive的条件查询语句_[一起学Hive]之九-Hive的查询语句SELECT
- 从零学习 vim 一个多月, 感觉最有用的三个教程
- 开发日记-201909024 关键词 linux基础
- go语言笔记——go是有虚拟机runtime的,不然谁来做GC呢,总不会让用户自己来new和delete进行内存管理吧,还有反射!Go 的 runtime 嵌入到了每一个可执行文件当中...
- Nginx 配置https 自动续期
- python 字符串填充0