How to select every other line from a text file?
Tim Chase
python.list at tim.thechases.com
Mon Oct 13 13:55:55 EDT 2014
On 2014-10-13 10:38, Rff wrote:
> Hi,
> I have a text file. Now it is required to select every other line
> of that text to generate a new text file. I have read through
> Python grammar, but still lack the idea at the beginning of the
> task. Could you tell me some methods to get this?
You could force a re-read from the file each line:
with open("x.txt") as f:
for line in f:
do_something(line)
next(f) # discard/consume the next line
Or, if you have it read into memory already, you could use slicing
with a stride of 2:
with open("x.txt") as f:
data = f.readlines()
interesting = data[::2] # start with the 1st line
# interesting = data[1::2] # start with the 2nd line
Or, if the file was large and you didn't want to have it all in
memory at the same time, you could use itertools.islice()
from itertools import islice
with open("x.txt") as f:
interesting = islice(f, 0, None, 2) # start with 1st line
#interesting = islice(f, 1, None, 2) # start with 2nd line
Note that in the last one, you get an iterator back, so you'd have to
either turn it into a list or iterate over it.
-tkc
More information about the Python-list
mailing list