Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
207 views
in Technique[技术] by (71.8m points)

python - Reading in a text file in a set line range

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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...