为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕运维8079593 2021-09-11 20:07:48
我正在尝试写一些东西来打印文件中的某些行。假设文件如下所示:姓名 = 1姓名 = 一个姓名 = 2姓名 = b姓名 = 3额外 = 1名称 = c姓名 = 4额外 = 1姓名 = d所以通常我可以做 if line startswith(name) 并将它们全部打印出来,但可以说我只需要其中的一半,而且我还不知道我需要什么值。所以我能做的就是只打印以“name”开头的行,在以“extra”开头的行之后,只打印我想要的行。但我不知道如何打印类似 line + 1 的内容。如何根据上一行的内容打印下一行?有一个更好的方法吗?谢谢!
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

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


查看完整回答
反对 回复 2021-09-11
?
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()


查看完整回答
反对 回复 2021-09-11
  • 2 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信