前言

大家都知道Python 读文件的方式多种多样,但是当需要读取一个大文件的时候,不同的读取方式会有不一样的效果。下面就来看看详细的介绍吧。
场景
逐行读取一个 2.9G 的大文件
方法
对每一行的读取进行一次分割字符串操作
以下方法都使用 with…as 方法打开文件。
with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。
方法一 最通用的读文件方式
with open(file, 'r') as fh:
for line in fh.readlines():
line.split("|")
运行结果: 耗时 15.4346568584 秒
系统监视器中显示内存从 4.8G 一下子飙到了 8.4G, fh.readlines() 将读取的所有行数据存到内存,这种方法适合小文件。
方法二
with open(file, 'r') as fh:
line = fh.readline()
while line:
line.split("|")
运行结果: 耗时 22.3531990051 秒
内存几乎没有变化,因为内存中只存取一行的数据,但是时间明显比上一次的长,对于进一步处理数据来说效率不高。
方法三
with open(file) as fh:
for line in fh:
line.split("|")
运行结果: 耗时 13.9956979752 秒
内存几乎没有变化,速度也比方法二快。
for line in fh 将文件对象 fh 视为可迭代的,它自动使用缓冲的 IO 和内存管理,因此您不必担心大文件。这是很 pythonic 的方式!
方法四 fileinput 模块
for line in fileinput.input(file):
line.split("|")
运行结果: 耗时 26.1103110313 秒
内存增加了 200-300 MB,速度是以上最慢的。
总结
以上方法仅供参考,公认的大文件读取方法还是三最好。但是具体情况还是要根据机器的性能、处理数据的复杂度。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# python
# 读取文件
# 读取大文件
# 读取文件内容
# Python读取文件内容的三种常用方式及效率比较
# Python随机读取文件实现实例
# Python使用defaultdict读取文件各列的方法
# C++/Php/Python/Shell 程序按行读取文件或者控制台的实现
# Python实现读取文件最后n行的方法
# Python用list或dict字段模式读取文件的方法
# Python按行读取文件的实现方法【小文件和大文件读取】
# Python按行读取文件的简单实现方法
# Python3读取文件常用方法实例分析
# python使用fileinput模块实现逐行读取文件的方法
# python逐行读取文件内容的三种方法
# Python linecache.getline()读取文件中特定一行的脚本
# 分析Python读取文件时的路径问题
# 大文件
# 几乎没有
# 这是
# 会有
# 好了
# 大家都
# 适用于
# 不高
# 多种多样
# 这篇文章
# 就来
# 谢谢大家
# 具体情况
# 也比
# 您不
# 比上
# 过程中
# 自动关闭
# 仅供参考
# 增加了
相关文章:
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
如何安全更换建站之星模板并保留数据?
如何在阿里云完成域名注册与建站?
如何高效利用亚马逊云主机搭建企业网站?
建站之星后台管理系统如何操作?
如何基于云服务器快速搭建网站及云盘系统?
建站主机SSH密钥生成步骤及常见问题解答?
建站之星代理商如何保障技术支持与售后服务?
如何在云主机上快速搭建网站?
如何基于云服务器快速搭建个人网站?
个人摄影网站制作流程,摄影爱好者都去什么网站?
宝塔面板创建网站无法访问?如何快速排查修复?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
大连网站设计制作招聘信息,大连投诉网站有哪些?
Android自定义listview布局实现上拉加载下拉刷新功能
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
上海网站制作开发公司,上海买房比较好的网站有哪些?
建站主机解析:虚拟主机配置与服务器选择指南
网站制作知乎推荐,想做自己的网站用什么工具比较好?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
网页设计与网站制作内容,怎样注册网站?
建站之星ASP如何实现CMS高效搭建与安全管理?
css网站制作参考文献有哪些,易聊怎么注册?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
免费网站制作appp,免费制作app哪个平台好?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
公司网站设计制作厂家,怎么创建自己的一个网站?
小型网站制作HTML,*游戏网站怎么搭建?
C++时间戳转换成日期时间的步骤和示例代码
网站制作需要会哪些技术,建立一个网站要花费多少?
宝塔新建站点为何无法访问?如何排查?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
建站主机是否属于云主机类型?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何快速搭建高效服务器建站系统?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
网站制作企业,网站的banner和导航栏是指什么?
如何快速生成凡客建站的专业级图册?
股票网站制作软件,网上股票怎么开户?
制作企业网站建设方案,怎样建设一个公司网站?
如何通过商城免费建站系统源码自定义网站主题?
成都网站制作报价公司,成都工业用气开户费用?
网站制作说明怎么写,简述网页设计的流程并说明原因?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
南京网站制作费用,南京远驱官方网站?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
*请认真填写需求信息,我们会在24小时内与您取得联系。