Как я понимаю, после прочтения первого файла у вас есть список, который называется d
, который содержит несколько строк.
Вам нужно прочитать какой-нибудь второй файл и отфильтровать только те строки, в которых есть строка из d
, верно?
Это так, проблема становится фильтрацией списка строк, в которых есть какая-то строка из другого списка (d
)
Можно сделать:
# second file, after building the "d" list
def filter_lines_by_keywords(lines_to_filter, key_words):
key_words_s = set(key_words)
return filter(lambda l: set(l.split()) & key_words_s, lines_to_filter)
with open('D:\\HelpString\\6060E28C0101VAlabels.h', "r+") as file1:
file1lines = file1.readlines()
filtered_lines = filter_lines_by_keywords(file1lines, d)
Пример выполнения:
d = ['word1', 'word2']
file1lines = ['line1 has some words',
'line2 has word1 and other',
'line3 has word2 and word1',
'line4 had nothing']
res = filter_lines_by_keywords(lines_to_filter = file1lines,
key_words = d)
print(list(res))
>> ['line2 has word1 and other', 'line3 has word2 and word1']