如何读取for循环中的下一行?python

如何读取for循环中的下一行?python,python,Python,我有一个for循环在我的文件中迭代,根据一个条件,我希望能够读取文件中的下一行。我想检测一个关键字[对于每个名称],一旦我找到它,我知道名称将跟随,我打印每个名称。基本上,一旦我找到了[每个名称]关键字,我就可以继续浏览这些行了 Python代码: 大家好,谢谢你们的回答。我已经发布了更多关于我在这里实际做什么的详细问题。一旦你找到标签,只要从循环中中断并开始阅读姓名,它就会从你中断的位置继续阅读: for line in file: if '[FOR_EACH_NAME]' in li

我有一个for循环在我的文件中迭代,根据一个条件,我希望能够读取文件中的下一行。我想检测一个关键字
[对于每个名称]
,一旦我找到它,我知道名称将跟随,我打印每个名称。基本上,一旦我找到了
[每个名称]
关键字,我就可以继续浏览这些行了

Python代码:


大家好,谢谢你们的回答。我已经发布了更多关于我在这里实际做什么的详细问题。

一旦你找到标签,只要从循环中中断并开始阅读姓名,它就会从你中断的位置继续阅读:

for line in file:
    if '[FOR_EACH_NAME]' in line:
        break
else:
    raise Exception('Did not find names')  # could not resist using for-else

for _ in range(5):
    line = file.readline()
    if 'Name' in line:
        print(line)

以下各行中的名称是否为每个名称?如果是,您可以检查在额外变量中查找什么:

file=open("file.txt","r")

names = 0
for line in file:
    if "[FOR_EACH_NAME]" in line
        names = 5
    elif names > 0:
        if "Name" in line:
            print(line)
        names -= 1

我想这会满足你的要求。这将读取接下来的5行,而不是接下来的5个名称。如果需要接下来的五个名称,则在行
ct+=1

#Open the file
ffile=open('testfile','r')

#Initialize
flg=False
ct=0

#Start iterating
for line in ffile:
    if "[FOR_EACH_NAME]" in line:
        flg=True
        ct=0
    if "Name" in line and flg and ct<5:
        print(line)
    ct+=1
#打开文件
ffile=open('testfile','r')
#初始化
flg=错误
ct=0
#开始迭代
对于ffile中的行:
如果行中有“[每个名称]”:
flg=真
ct=0

如果第行中有“Name”以及flg和CTG,则可以使用
next(file)
获取下一行。请注意,在执行此操作时,您使用的迭代器与for循环使用的迭代器相同,因此它将丢失以这种方式获得的任何行。唯一的问题是,一旦将文件交换为列表,代码就会失败。OP没有指定他只想查找一个名称列表。不过对其他人来说很好!
#Open the file
ffile=open('testfile','r')

#Initialize
flg=False
ct=0

#Start iterating
for line in ffile:
    if "[FOR_EACH_NAME]" in line:
        flg=True
        ct=0
    if "Name" in line and flg and ct<5:
        print(line)
    ct+=1