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

2024-10-02 14:17:35 发布

您现在位置:Python中文网/ 问答频道 /正文

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

这是我当前的代码,它不能解决问题(在本文中,我搜索一个标志,后面是一行包含股票名称(stocklist[k]和NysImbClearPrice),然后我用它做一些事情并提取它。然后我返回标志再次读取这些行,这次搜索一行包含不同的股票名称):

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

Tags: inforif标志line检查点specifiedrf
2条回答

您可以尝试这样的方法,其中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

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

相关问题 更多 >

    热门问题