我有这个问题,我试图提取两条线A和B.但如果B在A之后,我将提取那些线,否则,我想通过。最初,我认为它们等于我使用下面的代码。它实际上是更大代码的一部分,但这主要是问题所在。
def get_line(file_name, find_word1, find_word2):
lines = []
for line in file_name.strip().split('\n'):
if find_word1 in line:
lines.append(line)
elif find_word2 in line:
lines.append(line)
else:
pass
return lines
find_word1
为A
,find_word2
为B
。
从我的代码,我知道我只能获得两条线但不是条件。我不知道如何解决这个问题。如果你能提供帮助,请好好的
谢谢
答案 0 :(得分:0)
def get_line(file_name, find_word1, find_word2):
lines = []
temp = ""
for line in file_name.strip().split('\n'):
if find_word1 in line and not temp:
temp = line
elif find_word2 in line and temp:
lines.append(temp)
lines.append(line)
temp = ""
else:
pass
return lines
答案 1 :(得分:0)
def get_line(file_name, find_word1, find_word2):
lines = []
firstWord = False
for line in file_name.strip().split('\n'):
if find_word1 in line and not firstWord:
firstWord = True
temp = line
elif find_word2 in line and firstWord:
lines.append(temp)
lines.append(line)
firstWord = False
temp = ""
return lines
您需要对A进行初步检查,并且只有在找到A时您是否关心B.否则B无关紧要。这是通过检查A是否在该行中并且尚未找到来实现的。找到A后,可以使用布尔值标记找到它,并从该点开始只查找B。