Это должно быть началом для вас:
started = False
collected_lines = []
with open(path, "r") as fp:
for i, line in enumerate(fp.readlines()):
if line.rstrip() == "Start":
started = True
print "started at line", i # counts from zero !
continue
if started and line.rstrip()=="End":
print "end at line", i
break
# process line
collected_lines.append(line.rstrip())
Генератор enumerate
берет генератор и перечисляет итерации.
Например.
print list(enumerate("a b c".split()))
печать
[ (0, "a"), (1,"b"), (2, "c") ]
UPDATE
автор попросил использовать регулярное выражение для сопоставления строк, таких как "===" и "======":
import re
print re.match("^=+$", "===") is not None
print re.match("^=+$", "======") is not None
print re.match("^=+$", "=") is not None
print re.match("^=+$", "=abc") is not None
print re.match("^=+$", "abc=") is not None