Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python如果line=string,则打印文件的下一行_Python_File - Fatal编程技术网

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

Python如果line=string,则打印文件的下一行,python,file,Python,File,我正在写一些东西来打印文件中的某些行。假设该文件如下所示: name=1 名称=a name=2 name=b name=3 额外=1 name=c name=4 额外=1 name=d 所以通常我可以用(name)行开始并打印出来,但假设我只需要一半,我还不知道我需要什么值。所以我能做的就是只打印以“name”开头的行,在以“extra”开头的行之后,只打印我想要的行。但我不知道如何打印像line+1这样的内容。如何根据前一行的内容打印下一行?有更好的方法吗?谢谢 您只需使用布尔标志,并仅在设

我正在写一些东西来打印文件中的某些行。假设该文件如下所示:

name=1

名称=a

name=2

name=b

name=3

额外=1

name=c

name=4

额外=1

name=d


所以通常我可以用(name)行开始并打印出来,但假设我只需要一半,我还不知道我需要什么值。所以我能做的就是只打印以“name”开头的行,在以“extra”开头的行之后,只打印我想要的行。但我不知道如何打印像line+1这样的内容。如何根据前一行的内容打印下一行?有更好的方法吗?谢谢

您只需使用布尔标志,并仅在设置该标志时打印即可。比如:

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

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

太神了非常感谢。