一尘不染

如何遍历文件的第n行?

python

首先,我是Python的新手,确实搜索了答案,但是没有运气。到目前为止,我发现的内容只返回一行,就像下面的代码一样。我尝试了其他解决方案,例如,itertools.islice但总是只能返回一行。

我有一个名为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行…?


阅读 199

收藏
2021-01-20

共1个答案

一尘不染

的返回值open是一个迭代器(因此是可迭代的),因此您可以将其传递给itertools.islice

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
2021-01-20