在 Python 中,逐行读取大文本文件很简单:
for line in open('somefile', 'r'): ...
但是如何读取二进制文件并通过某个给定标记而不是换行符'\n''拆分'(通过生成器)其内容?
我想要这样的东西:
content = open('somefile', 'r').read()
result = content.split('some_marker')
但是,当然,内存效率高(文件大约 70GB)。当然,我们不能按字节读取文件(由于 HDD 的性质,它会太慢)。
“块”长度(这些标记之间的数据)可能不同,理论上从 1 字节到兆字节不等。
所以,举个例子来总结一下,数据看起来是这样的(这里的数字是字节,数据是二进制格式):
12345223-MARKER-3492-MARKER-34834983428623762374632784-MARKER-888-MARKER-...
有没有简单的方法来做到这一点(不实现块读取、拆分块、记住尾部等)?