繁体   English   中英

如果当前行包含字符串,如何从文件中打印下一行?

[英]How to print the next line from a file, if current line contains a string?

我正在尝试编写一些东西来打印文件中的某些行。 假设文件如下所示:

name = 1
name = a
name = 2
name = b
name = 3
extra = 1
name = c
name = 4
extra = 1
name = d

所以通常我可以这样做if line startswith(name)并将它们全部打印出来,但是假设我只需要以“name”开头的行,它们位于以“extra”开头的行之后。 但我不知道如何打印line + 1之类的东西。 如何根据上一行的内容打印下一行?

在输入处理循环的最后,保留当前输入行的副本,并将其命名为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

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

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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM