首先,我是Python的新手,确实搜索了答案,但是没有运气。到目前为止,我发现的内容只返回一行,就像下面的代码一样。我尝试了其他解决方案,例如,itertools.islice但总是只能返回一行。
itertools.islice
我有一个名为data.txt包含数据行的文件:
data.txt
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 ...
我有以下代码:
with open('data.txt', 'r') as f: for x, line in enumerate(f): if x == 3: print(line)
在这种情况下,它仅打印
“这是第四行”。
我知道为什么,但是如何从这里拿走并打印第4、7、10、13行…?
的返回值open是一个迭代器(因此是可迭代的),因此您可以将其传递给itertools.islice:
open
islice(iterable,start,stop [,step])-> islice对象 返回一个迭代器,该迭代器的next()方法返回可迭代的选定值。[…]
演示:
data.txt:
line1 line2 line3 line4 line5 line6 line7 line8 line9 line10 line11 line12 line13
码:
from itertools import islice with open('data.txt') as f: for line in islice(f, 3, None, 3): print line, # Python3: print(line, end='')
产生:
line4 line7 line10 line13