我有一个txt文件,那里有数千行,例如:
line 1 test
line 2 test
line 3 test
line 4 test
line 5 test
line 6 test
line 7 test
line 8 test
line 9 test
我希望阅读line 1, line 4, line 7, line 10, line 13 ...
但忽略line 2, 3, 5, 6, 8, 9...
。我怎么读这些线?
答案 0 :(得分:9)
您可以使用itertools.islice
与给定的step
进行迭代:
for line in itertools.islice(inputFile, None, None, 3):
请注意,我更倾向于将step = 3
指定为关键字,但似乎islice不支持。 :(
这在概念上类似于将所有行读入内存然后获取结果列表的一部分:
all_lines = inputFile.readlines() #very memory inefficient
for line in all_lines[::3]: #step of 3, start is None and end is None.
然而islice
与itertools
中的其他所有内容非常相似,效率非常高。
答案 1 :(得分:2)
Okey,我使用for i, line in enumerate(inputFile):