如何在Python中从文件中打印每三(或第n)行?

时间:2016-04-07 21:39:56

标签: python python-2.7

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

2 个答案:

答案 0 :(得分:0)

在您的代码中您在x == 3时打印,因此您只打印文件中的第四行,因为枚举以0开头。

尝试:

with open('data.txt', 'r') as f:
    for x, line in enumerate(f):
        if x%3 == 1:
            print(line)

x%3 == 1表示x之前的3分区的休息时间必须为1。 这样您将打印行1, 4, 7, etc.

答案 1 :(得分:0)

您需要使用https://en.wikipedia.org/wiki/Modular_arithmetic

with open('data.txt', 'r') as f:
    for x, line in enumerate(f):
        if x % 3 == 0:
            print(line)