Python,如果line = string,则从文件中打印下一行

时间:2018-12-10 04:56:41

标签: python file

我正在尝试写一些东西来打印文件中的某些行。假设文件看起来像这样:

名称= 1

name = a

name = 2

name = b

名称= 3

extra = 1

name = c

名称= 4

extra = 1

name = d

因此通常情况下,如果行startwith(name)并将其全部打印出来,我可以这样做,但是可以说我只需要其中一半,而且我还不知道我需要什么值。因此,我只能打印以“ name”开头的行(以“ extra”开头的行之后),只打印我想要的行。但是我不知道如何打印类似line + 1的内容。如何根据上一行的内容打印下一行?有一个更好的方法吗?谢谢!

2 个答案:

答案 0 :(得分:3)

在输入处理循环的最后,保留当前输入行的副本,并将其命名为previous_line。然后,在下一次迭代中,您将可以访问当前输入行和上一个输入行。

previous_line = ''
for line in f:
    if line.startswith('name') and previous_line.startswith('extra'):
        print line
    # keep a copy of this line for the next loop
    previous_line = line

答案 1 :(得分:0)

您可以简单地使用布尔标志并仅在设置了标志的情况下进行打印。像这样:

print_next_line = False
for line in f_in:
    if print_next_line:
        print(line)
        print_next_line = False
    else:
        print_next_line = line.startswith()