查找关键字并遍历文件以查找下一个关键字

时间:2019-04-04 14:51:44

标签: python-3.x loops iteration

我正在文件中搜索特定的关键字。从那里,我想在前几行中搜索其他关键字。 例如:在文本中搜索“源”。然后在文本的前15行中搜索关键字“目标”。 问题是,第二个关键字出现在距离第一个关键字约15-20行的范围内,所以我不能只放置第[i-15]行,因为它不会为每次找到该关键字的实例返回相同的结果“源”。

我尝试设置一个变量,如果在上一行中没有找到第二个关键字,该变量将递增,以便它可以继续迭代和搜索,但是会遇到错误。

第一次尝试...

df.groupby('month').mean()

2 个答案:

答案 0 :(得分:1)

好的,所以我了解到您想遍历文本,然后在此之前寻找第二个关键字。

但是,我不清楚您是要防止搜索范围过大还是要在没有前几行的情况下查找第二个关键字,因此我将为您提供同时执行这两个功能的功能。

def looking_for_keywords(lines, keyword_1, keyword_2, range = None):
    for i,line in enumerate(lines):
        if keyword_1 in line:
            j=0
            max = range if range else i
            not_found = True
            while j<max and not_found:
                j+=1 
                not_found = not(keyword_2 in lines[i-j])
            if not_found:
                print('Not Found')
            else:
                print(f'Found first at {i} and second at {i-j}')

请注意,您的答案不会得到相同的结果,如果i <3

答案 1 :(得分:0)

看起来好像我找到了答案,以防其他人遇到相同的问题。

    for i, line in enumerate(lines):
        if keyword_1 in line:
            prev_line=lines[i - 1]
            for k in range(1,3):
                j=k
                prev_line=lines[i - j]
                print(prev_line)
 #Then search for keyword_2