Сравнение двух текстовых файлов с последующим выведением совпадений (Python)

Приветствую сообщество stackoverflow. Есть два текстовых файла ('file.txt', 'file2.txt'), нужно провести сравнение и вывести совпадение. Я тут набросал работающий вариант, и мне в нем нравиться, что вывод игнорирует если строка в одном из файлов начинается с пробела или какой-либо вступительной фразы - выводит только совпадения. Однако есть и недостаток указал их #так.

        with open(file.txt) as file1:  
            for line in file1:  
                filelist1 = line.split()  
                with open(file2.txt) as file2:  
                    for line in file2:
                        filelist2 = line.split()  
                            resoult = list(set(filelist1) & set(filelist2))  
                            if resoult == []:  #(осторожно наколхозил) вот тут мне не нравиться, если не использовать эту команду при выводе совпадений из текстовых файлов будет множество пустых списков'''
                                continue  
                            else:
                                print(resoult, end='\n')  

Хотелось бы сюда вставить что-то вроде if/else в плане: если вывод пустой - написать пользователю, что совпадения не найдены; если же 'len(resoult) > 0' - поздравить с найденными совпадениями. Но сделать это с помощью данного кода не представляется возможности.

Пример.

file.txt:

груша
яблоко апельсин 
арбуз и дыня 

file2.txt:

манго малина яблоко 
 дыня 

Мой вывод:

['яблоко']
['дыня']

Желаемый вывод:

Ваши найденные совпадения: 
яблоко
дыня

Очень хотелось бы посмотреть, как с этой простой задачей справиться более лаконично и правильно. Заранее прошу прощения за глупость и большое спасибо за Ваши ответы!


Ответы (2 шт):

Автор решения: Sergey K.

Код не сильно красивый, но вот наипростейший способ найти пересечение множеств:

f = open('file.txt', 'r', encoding='utf-8')
lines1 = set(f.read().split())
f.close()
f = open('file2.txt', 'r', encoding='utf-8')
lines2 = set(f.read().split())
f.close()

print(lines1)
print(lines2)

print(lines1.intersection(lines2))

Вывод:

{'груша', 'арбуз', 'апельсин', 'и', 'яблока', 'дыня'}
{'дыня', 'манго', 'яблоко', 'малина'}
{'дыня'}

Заметим, что из представленного набора данных слова "яблока" и "яблоко" - разные, поэтому не вывелись. Чтобы сделать возможным вывод сообщений "найдены" или "не найдены" совпадения, то добавим простую проверку:

f = open('file.txt', 'r', encoding='utf-8')
lines1 = set(f.read().split())
f.close()
f = open('file2.txt', 'r', encoding='utf-8')
lines2 = set(f.read().split())
f.close()

print('Первое множество:', lines1)
print('Второе множество:', lines2)

intersection = lines1.intersection(lines2)

if len(intersection) > 0:
    print('Совпадения найдены:', intersection)
else:
    print('Совпадения не найдены')

Вывод:

Первое множество: {'груша', 'яблока', 'арбуз', 'дыня', 'апельсин', 'и'}
Второе множество: {'малина', 'яблоко', 'манго', 'дыня'}
Совпадения найдены: {'дыня'}
→ Ссылка
Автор решения: vinter_man

На вопрос (vinter_man) ''Желаемый вывод..." дополнение к ответу (Sergey K.)

if len(intersection) > 0:
    print('Поздравляю с совпадениями:')
else:
    print('Cовпадения не найдены')
for resoults in intersrctoin:
    print('{0:}'.format(resoults))
→ Ссылка