![](/img/trans.png)
[英]If the next line of a file contains a string, append it to the end of the current one
[英]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.