Поиск строки по номеру строки в обоих направлениях - PullRequest
0 голосов
/ 30 мая 2011

Используя Python 2.4, я читаю большой плоский файл и выбираю определенный номер строки.Теперь я хочу найти строку, скажем, START перед этим номером строки и строку END после этого номера строки.

Как получить номера строк ближайших вхожденийстроки START (до номера текущей строки) и END (после номера текущей строки)?

1 Ответ

2 голосов
/ 30 мая 2011

Как насчет этого:

line_no = 1

# Seek the last START before reaching the target line.
start_line_no = -1
while line_no != target_line_no:
    line = input.readline()
    if line == "":
        # File is shorter than you think.
        break
    line_no += 1
    if START in line:
        start_line_no = line_no

# Seek the first END after the target line.    
end_line_no = -1
while true:
    line = input.readline()
    if line == "":
        # END could not be found.
        break
    line_no += 1
    if END in line:
        end_line_no = line_no
        break

print start_line_no, end_line_no
...