Reading in a text file in a set line range

file, python

Solution

You can use `itertools.islice()` on the file object and use iteration to read only specific lines:

import itertools

with open(file_to_save, "r") as text_file:
    for line in itertools.islice(text_file, 19, 52):
         # do something with line

would read lines 20 through to 52; Python uses 0-based indexing, so line 1 is numbered 0.

Using the file object as an iterator gives you a lot of flexibility; you can read extra lines by calling `next()` on the file object, for example, advancing the line 'pointer' as you do so.

When using the file as an iterable, don't use `readline()`; the two techniques are not easily mixed.

Problem

Is it possible to read in from a text file a set line range for example from line 20 to 52? I am opening the file and reading the file like this: ``` text_file = open(file_to_save, "r") line = text_file.readline() ``` but only want to save the data in a set range or if it possible to read in from a after a line containing --- data --- to another line containing -- end of data -- I have looked through the documentation and online examples and can only find examples that specify a new line or something

Original source

Related problems