Reading in a text file in a set line range

前端 未结 3 1407
暗喜
暗喜 2020-12-15 01:16

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:

te         


        
3条回答
  •  孤城傲影
    2020-12-15 01:58

    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.

提交回复
热议问题