您可以使用mmap将文件映射到内存。然后可以像普通字符串一样访问文件内容:
import re, mmap
with open('/var/log/error.log', 'r+') as f:
data = mmap.mmap(f.fileno(), 0)
mo = re.search('error: (.*)', data)
if mo:
print "found error", mo.group(1)
如何在不将其全部读入内存的情况下对整个文件进行重新搜索或重新匹配?
您可以使用mmap将文件映射到内存。然后可以像普通字符串一样访问文件内容:
import re, mmap
with open('/var/log/error.log', 'r+') as f:
data = mmap.mmap(f.fileno(), 0)
mo = re.search('error: (.*)', data)
if mo:
print "found error", mo.group(1)