如果我想懒读python,我可以保留一个计数器并分块读取
i = 0
while len(str) == 1024:
str = file.read(1024)
pattern.match(str, i)
i = i + len(str)
但是,如果我的模式为'\n{2000}'
,则即使我的文件为5000个空行,该模式也将永远无法匹配。实际上,任何贪婪的正则表达式在应用于外部缓冲输入时可能会产生不正确的结果。
是否有办法使pattern.match
与文件对象而不是字符串进行匹配?如果不是,我该怎么做才能确保贪婪的正则表达式准确匹配,而不会立即将整个文件读入内存? (替代方法是使用seek
和tell
)。