全网整合营销服务商

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

免费咨询热线: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读取文件时的路径问题  # 大文件  # 几乎没有  # 这是  # 会有  # 好了  # 大家都  # 适用于  # 不高  # 多种多样  # 这篇文章  # 就来  # 谢谢大家  # 具体情况  # 也比  # 您不  # 比上  # 过程中  # 自动关闭  # 仅供参考  # 增加了 


相关文章: 建站之星导航配置指南:自助建站与SEO优化全解析  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  如何在阿里云虚拟主机上快速搭建个人网站?  建站之星后台密码如何安全设置与找回?  网站制作价目表怎么做,珍爱网婚介费用多少?  建站之星下载版如何获取与安装?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  如何在Golang中指定模块版本_使用go.mod控制版本号  如何通过宝塔面板实现本地网站访问?  如何快速查询域名建站关键信息?  教程网站设计制作软件,怎么创建自己的一个网站?  如何在橙子建站中快速调整背景颜色?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  如何通过FTP空间快速搭建安全高效网站?  如何选择高效便捷的WAP商城建站系统?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何制作算命网站,怎么注册算命网站?  建站之星客服服务时间及联系方式如何?  如何在局域网内绑定自建网站域名?  javascript基本数据类型及类型检测常用方法小结  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  如何获取免费开源的自助建站系统源码?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  建站之星免费模板:自助建站系统与智能响应式一键生成  油猴 教程,油猴搜脚本为什么会网页无法显示?  如何选择适配移动端的WAP自助建站平台?  nginx修改上传文件大小限制的方法  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  如何高效完成自助建站业务培训?  建站主机SSH密钥生成步骤及常见问题解答?  Swift中swift中的switch 语句  如何挑选高效建站主机与优质域名?  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何用AWS免费套餐快速搭建高效网站?  建站之星如何助力企业快速打造五合一网站?  专业网站建设制作报价,网页设计制作要考什么证?  建站DNS解析失败?如何正确配置域名服务器?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  如何快速搭建二级域名独立网站?  如何在IIS7中新建站点?详细步骤解析  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何在服务器上配置二级域名建站?  建站之星2.7模板:企业网站建设与h5定制设计专题  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  如何在阿里云ECS服务器部署织梦CMS网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。