Если я хочу ленивое чтение на 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
вместо).