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

2024-04-25 06:13:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在编写一个python脚本来处理非常大的(>;10GB)文件。由于无法将整个文件加载到内存中,我现在逐行读取并处理它:

for line in f:
....

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

脚本是否会逐行读取,或者是否存在某种操作系统支持的缓冲?如果不是,我应该自己实现某种中介缓冲吗?击中磁盘实际上是有害的吗?我记得我读过一些关于BitTorrent的文章,正是因为这种按位读/写的方式,而不是处理更大的数据块。你知道吗

在我的测试环境中,我同时使用HDD和SSD,所以答案对这两个系统都很有意思。你知道吗


Tags: 文件数据内存ingt脚本for测试环境
1条回答
网友
1楼 · 发布于 2024-04-25 06:13:36

出于性能原因,OS和Python都使用缓冲区来读取大块数据。从Python中逐行读取文件不会对磁盘造成实质性影响。你知道吗

具体地说,Python不能在不预先扫描以找到行分隔符的情况下给出单独的行,因此它将读取块,解析出单独的行,并且每次迭代都将从缓冲区中提取行,直到必须读取另一个块才能找到下一组行。操作系统通常使用buffer cache来帮助加速I/O。你知道吗

相关问题 更多 >