Я новичок в Python, поэтому просто пытаюсь что-то с ним сделать.
У меня огромный файл, в котором после поиска поисковой фразы я должен вернуться на n строк и получить начало текста, начальный тег,После этого начните чтение с этой позиции.
Фразы могут встречаться несколько раз.И есть несколько начальных тегов.Пожалуйста, найдите образец файла, как показано ниже:
<module>
hi
flowers
<name>xxx</name>
<age>46</age>
</module>
<module>
<place>yyyy</place>
<name>janiiiii</janii>
</module>
Предположим, что поиск есть, и мне нужно вернуться к строке, как только я буду искать.Границы между & будут меняться, они не являются статичными.Поэтому, как только я найду имя, мне нужно вернуться к строке модуля и начать его чтение.
Пожалуйста, найдите следующий код:
from itertools import islice
lastiterline=none
line_num=0
search_phrase="Janiii"
with open ('c:\sample.txt',"rb+") as f:
for line in f:
line_num+=1
line=line.strip()
if line.startswith("<module>"):
lastiterline=line
linec=line_num
elif line find(search_phrase)>=0:
if lastiterline:
print line
print linec
Это поможет мне получить номер строкимодуль, соответствующий поисковому слову. Но я не могу переместить указатель назад, чтобы снова начать чтение строк из модуля.Будет несколько поисковых фраз, поэтому каждый раз мне нужно возвращаться к этой строке, не разбивая основной файл, который читает весь огромный файл.
Например: может быть 100 тегов модулей, и внутри меня может быть 10 поисковых фраз, которые мне нужны, поэтому мне просто нужны эти 10 тегов модулей.