逐行读取文件 - 影响磁盘?

时间:2016-02-15 10:09:14

标签: python operating-system filesystems ssd hdd

我目前正在编写处理非常大(> 10GB)文件的python脚本。由于不能将整个文件加载到内存中,我现在正在逐行阅读和处理它:

for line in f:
....

一旦脚本完成,它将经常运行,因此我开始考虑这种读取对我的磁盘寿命会产生什么影响。

脚本实际会逐行读取还是会发生某种操作系统供电的缓冲?如果没有,我应该自己实现某种中间缓冲区吗?击中通常实际上有害的磁盘?我记得读过有关BitTorrent快速磨损磁盘的一些信息,因为这种按位读取/写入而不是使用更大块的数据。

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

1 个答案:

答案 0 :(得分:7)

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

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