First, I am new to Python and did search for answers, but no luck. So far what I found only returns a one line like my code below. I tried other solutions like itertools.islice but always only get a one line back.
I have a file called data.txt containing lines of data:
This is line one
This is line two
This is line three
This is line four
This is line five
This is line six
This is line seven
...
I have the following code:
with open('data.txt', 'r') as f:
for x, line in enumerate(f):
if x == 3:
print(line)
In this case it only prints
"This is line four".
I do understand why but how do I take it from here and have it print the lines 4, 7, 10, 13, ...?
The return value of open is an iterator (and thus, iterable), so you can pass it to itertools.islice:
islice(iterable, start, stop[, step]) --> islice object
Return an iterator whose next() method returns selected values from an iterable. [...]
Demo:
data.txt:
line1
line2
line3
line4
line5
line6
line7
line8
line9
line10
line11
line12
line13
Code:
from itertools import islice
with open('data.txt') as f:
for line in islice(f, 3, None, 3):
print line, # Python3: print(line, end='')
Produces:
line4
line7
line10
line13
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With