If you simply want the block of text between
End, you can do something simple like:
with open('test.txt') as input_data: # Skips text before the beginning of the interesting block: for line in input_data: if line.strip() == 'Start': # Or whatever test is needed break # Reads text until the end of the block: for line in input_data: # This keeps reading the file if line.strip() == 'End': break print line # Line is extracted (or block_of_lines.append(line), etc.)
In fact, you do not need to manipulate line numbers in order to read the data between the Start and End markers.
The logic (“read until…”) is repeated in both blocks, but it is quite clear and efficient (other methods typically involve checking some state [before block/within block/end of block reached], which incurs a time penalty).