我有一个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。
答案 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