加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 逐行读取文件 – 对磁盘的影响?

发布时间:2020-12-20 11:49:29 所属栏目:Python 来源:网络整理
导读:我目前正在编写一个处理非常大( 10GB)文件的 python脚本.由于将整个文件加载到内存中不是一种选择,我现在正在逐行阅读和处理它: for line in f:.... 一旦脚本完成,它将经常运行,所以我开始考虑这种读取对我的磁盘寿命有什么影响. 脚本是否会逐行读取或者是
我目前正在编写一个处理非常大(> 10GB)文件的 python脚本.由于将整个文件加载到内存中不是一种选择,我现在正在逐行阅读和处理它:

for line in f:
....

一旦脚本完成,它将经常运行,所以我开始考虑这种读取对我的磁盘寿命有什么影响.

脚本是否会逐行读取或者是否存在某种由OS驱动的缓冲?如果没有,我应该自己实现某种中间缓冲区吗?击中通常实际上有害的磁盘?我记得读过一些关于BitTorrent快速磨损磁盘的东西正是因为这种按位读/写而不是使用更大块的数据.

我在我的测试环境中同时使用HDD和SSD,因此两个系统的答案都很有趣.

解决方法

出于性能原因,您的操作系统和Python都使用缓冲区来读取更大块的数据.通过Python逐行读取文件,您的磁盘不会受到重大影响.

具体来说,Python无法在没有向前扫描的情况下为您提供单独的行来查找行分隔符,因此它将读取块,解析出各行,并且每次迭代将从缓冲区中获取行,直到必须读取另一个块以查找下一组线.操作系统使用buffer cache来帮助加速I / O.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读