首页 文章

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

提问于
浏览
-1

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

name = 1

name = a

name = 2

name = b

name = 3

额外= 1

name = c

name = 4

额外= 1

name = d

所以通常情况下,如果行开头(名称)并将它们全部打印出来,我可以这么做,但是我只想说它只有一半,我还不知道我需要什么值 . 所以我能做的只是打印以“name”开头的行,这些行以“extra”开头,只打印我想要的行 . 但我无法弄清楚如何打印类似于第1行的内容 . 如何根据上一行所说的内容打印下一行?有一个更好的方法吗?谢谢!

2 回答

  • 3

    您可以简单地使用布尔标志,并仅在设置了标志时进行打印 . 就像是:

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

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

相关问题