我正在尝试写一些东西来打印文件中的某些行。假设文件如下所示:姓名 = 1姓名 = 一个姓名 = 2姓名 = b姓名 = 3额外 = 1名称 = c姓名 = 4额外 = 1姓名 = d所以通常我可以做 if line startswith(name) 并将它们全部打印出来,但可以说我只需要其中的一半,而且我还不知道我需要什么值。所以我能做的就是只打印以“name”开头的行,在以“extra”开头的行之后,只打印我想要的行。但我不知道如何打印类似 line + 1 的内容。如何根据上一行的内容打印下一行?有一个更好的方法吗?谢谢!
2 回答
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
在输入处理循环结束时,保留当前输入行的副本并将其命名为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
Smart猫小萌
TA贡献1911条经验 获得超7个赞
您可以简单地使用布尔标志并仅在设置标志时打印。就像是:
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/150
提交
取消