全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

利用Python读取文件的四种不同方法比对

前言

大家都知道Python 读文件的方式多种多样,但是当需要读取一个大文件的时候,不同的读取方式会有不一样的效果。下面就来看看详细的介绍吧。

场景

逐行读取一个 2.9G 的大文件

  • CPU i7 6820HQ
  • RAM 32G

方法

对每一行的读取进行一次分割字符串操作

以下方法都使用 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小时内与您取得联系。