有一个名为1.feature的文件:
background
Scenario:1
Scenario:2
Scenario:3
Scenario:4
aasdf;
ad;das
dasd;asd
ad'asd
tekst
asdsadsa
Scenario
tekst
tekst
tekst
asdasd
我想获得最后一个场景'的行号。之后出现' text'文本。 在这个特定的例子中,它将是:第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
我认为问题出在current_index变量上。
也许有更简单的方法来获得这样的输出? 此致
答案 0 :(得分:0)
根据要求,当一个"场景"被击中,该场景的位置被存储。如果找到所需文本且尚未打印场景,则会打印场景:
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