Python 递归获取行数

Python 递归获取行数,python,python-2.7,Python,Python 2.7,有一个名为1.1的文件。功能: background Scenario:1 Scenario:2 Scenario:3 Scenario:4 aasdf; ad;das dasd;asd ad'asd tekst asdsadsa Scenario tekst tekst tekst asdasd 我想得到最后一个“场景”的行号,之后会出现“文本”文本。 在这个特定的例子中,它将是:第6行和第13行 现在我有这样的代码: with open('1.feature', 'r') as feat

有一个名为1.1的文件。功能:

background

Scenario:1
Scenario:2
Scenario:3
Scenario:4
aasdf;
ad;das
dasd;asd
ad'asd
tekst
asdsadsa
Scenario
tekst
tekst
tekst
asdasd
我想得到最后一个“场景”的行号,之后会出现“文本”文本。 在这个特定的例子中,它将是:第6行和第13行

现在我有这样的代码:

with open('1.feature', 'r') as feat:
    tabula = feat.readlines()
    for element in tabula:
        if 'tekst' in element:
            current_index = tabula.index(element)
for element in tabula:
    if 'Scenario' in element and current_index > tabula.index(element):
        scenario_begining = '1.feature:' + str(tabula.index(element) + 1)
print scenario_begining
预期产出:

1.feature:6
1.feature:13
电流输出:

1.feature:6
我想问题在于当前的_索引变量

也许有更简单的方法获得这样的输出?
根据需求,当点击“场景”时,将存储该场景的位置。在找到所需文本且尚未打印场景的情况下,将打印场景:

text = 'tekst'

with open('1.feature', 'r') as feat:
    tabula = feat.readlines()

current_scenario = -1
for i in range(len(tabula)):
    if 'Scenario' in tabula[i]:
        current_scenario = i+1
    elif tabula[i].strip('\n') == text and current_scenario != -1:
        print '1.feature:', current_scenario
        current_scenario = -1
结果是:

1.feature:6
1.feature:13

不完全是。让我精确一点。如果文件中有“文本”,则表示我们正在查找“文本”之前最近的“场景”。如果在特定的“文本”之前有多个“场景”,我们只会得到之前最接近的“场景”。