我如何阅读for循环中的下一行?蟒蛇

时间:2015-10-27 20:48:19

标签: python

我有一个for循环遍历我的文件,并根据条件,我希望能够读取文件中的下一行。我想在找到它后检测到[FOR_EACH_NAME]的关键字,我知道名字会跟随,我打印每个名字。基本上,一旦找到[FOR_EACH_NAME]关键字,我该如何继续操作。

Python 代码:

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

for line in file:
    if "[FOR_EACH_NAME]" in line
        for x in range(0,5)
            if "Name" in line:
                print(line)

大家好,谢谢你的回答。我发布的问题更多地反映了我在这里所做的事情How to keep track of lines in a file python

3 个答案:

答案 0 :(得分:2)

找到标签后,只需从循环中断开并开始读取名称,它将继续从您打断的位置读取:

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)

答案 1 :(得分:0)

FOR_EACH_NAME后面的行中是否有姓名?如果是这样,你可以在一个额外的变量中检查要查找的内容:

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

答案 2 :(得分:0)

我认为这会做你想要的。这将读取接下来的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