如何仅使用 read(1) 在二进制文件中查找字符串? 例如,我想在文件中找到字符串“abst”的位置(不加载到内存中)? 它的工作,但非常原始:
#!/usr/bin/python2
f = open("/tmp/rr", "rb")
f.seek(0)
cont = 1
while(cont):
a1 = f.read(1)
if a1 == 'a':
a2 = f.read(1)
if a2 == 'b':
a3 = f.read(1)
if a3 == 's':
a4 = f.read(1)
if a4 == 't':
found = True
cont = 0
请您参考如下方法:
使用mmap搜索具有恒定内存要求的文件:
import mmap
with open('/tmp/rr', 'rb') as f:
m = mmap.mmap(f.fileno(), 0, mmap.MAP_PRIVATE, mmap.PROT_READ)
position = m.index('abst')
