python - 如何在 Python 中读取文件的中等大小指定 block

标签 python io

如果我有一个文本文件,从第 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)

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

关于python - 如何在 Python 中读取文件的中等大小指定 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30856733/

相关文章:

java - RandomAccessFile - 返回空字符串

python - 如何以编程方式在 MoinMoin 中创建新页面?

java - 尝试从输入流检索文本时应用程序挂起

python - 根据类型对 Pandas 数据框进行操作

Python date.today 显示第二天

Python 文件 io 缓冲

python - 如果程序重新启动,如何将程序的管道输出保持到 python 脚本

Python 不从文件读取

python - 如果条件在 django 模板的内循环中不起作用

python - 打开 CV RTSP 相机缓冲区滞后