如何在 Python 中读取指定大小的文件块

How to read a middle size-specified chunk of a file in Python

如果我有一个文本文件,从文件中第 5 MB 附近的一行开始并将后续 5 MB 的行读入列表的干净方法是什么?理想情况下进入行列表。

我知道 f.seek(5000000) 从第 5 MB 开始,如果我估计行数,我大概可以估计下一个 5MB,但如果有更精确的方法就更好了。尝试使用 f.readlines,但没有用

我假设的行为是在文件中寻找 5 MB,然后将接下来的 5 MB 分成几行。你想要这样的东西:

f.seek(5*1024*1024)
lines = f.read(5*1024*1024).splitlines()

或者人工统计(推荐方法,效率更高):

f.seek(5*1024*1024)
lines = []
while f.tell() < 10*1024*1024:
    line = f.readline(10*1024*1024-f.tell())
    lines.append(line)

但是,如果您要计算字节数,请记住以二进制模式打开文件!