我有一个很长的文件,必须在其中寻找特定的值。问题在于该文件有两行以相同的方式开始,但是我需要打印第二行。
文件类似于:
... random text
Total = 910 K. #Don't need it
... more random lines
Total = 1000 K #The one I need it
我正在使用:
for i,line in enumerate(lines):
if line.find('Total =') != -1:
Total = line.split()[4]
break
但这只是给我第一场比赛。
我如何跳过拳头比赛而只使用第二个?
答案 0 :(得分:3)
可能不是最好的解决方案,但是您可以使用一个标志来检查是否已经找到第一次出现的情况
is_second_occurance = False
for i,line in enumerate(lines):
if line.find('Total =') != -1:
if is_second_occurance:
total = line.split()[4]
break
else:
is_second_occurance = True
更好的解决方案可能是将其分解为一个返回生成器的函数
def get_total(lines):
for line in lines:
if line.startswith("Total = "):
yield line.split()[4]
total = get_total(lines)
total = get_total(lines)
我认为这应该给您第二次出现
答案 1 :(得分:0)
或者可能是正则表达式
import re
string='''Total = 910 K. #Don't need it
... more random lines
Total = 1000 K #The one I need it'''
re.findall('(Total[\s\=\w]*K)',string)[1] #will find everything related to Total