在满足条件后返回到文本文件中的指定行



我正试图将一条特定的行标记为我的"检查点",这样每当我的条件得到满足时,程序就会返回该检查点并从那里开始读取行。我不知道该怎么做。

这是我目前的代码,它并没有解决这个问题(在这种情况下,我搜索一个FLAG,后面跟着一行包含股票名称(stocklist[k]和NysImbClearPrice,然后我对它做了一些事情并提取出来。然后我回到FLAG再次读取行,这次搜索一行包含不同股票名称(:

with open('loggerdec7.log', 'r') as rf:
found = False
k = 0
for line in rf:                         
if 'FLAG' in line:
spot = rf.tell() #mark specified checkpoint
found = True
if found:
nameandnysimb = [stocklist[k], 'NysImbClearPrice:']
if all(x in line for x in nameandnysimb):   
k+=1    
clearprice = line.split('NysImbClearPrice: ',1)[-1].split(' ',1)[0]
cplist.append(clearprice)
rf.seek(spot) #relocate to specified checkpoint

我认为您可以使用readlines()方法来获取列表中的行。之后,您可以简单地遍历列表并跟踪索引。

您可以尝试这样的操作,其中i将跟踪行号:

with open('loggerdec7.log', 'r') as rf:
lines = rf.read().splitlines()
found = False
for i, line in enumerate(lines):
if 'FLAG' in line:
found = True
break
if found:
# do something

最新更新