我正在尝试写一些东西来打印文件中的某些行。假设文件看起来像这样:
名称= 1
name = a
name = 2
name = b
名称= 3
extra = 1
name = c
名称= 4
extra = 1
name = d
因此通常情况下,如果行startwith(name)并将其全部打印出来,我可以这样做,但是可以说我只需要其中一半,而且我还不知道我需要什么值。因此,我只能打印以“ name”开头的行(以“ extra”开头的行之后),只打印我想要的行。但是我不知道如何打印类似line + 1的内容。如何根据上一行的内容打印下一行?有一个更好的方法吗?谢谢!
答案 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()