如何遍历文件的第n行?

发布于 2021-01-29 14:59:58

首先,我是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行…?

关注者
0
被浏览
70
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    的返回值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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看