Условия задачи:

 

Анализ файла. Напишите программу, которая читает содержимое двух текстовых фай­ов и сравнивает их следующим образом: 
•показывает список всех уникальных слов, содержащихся в обоих файлах;
•показывает список слов, входящих в оба файла;
•показывает список слов из первого файла, не входящих во второй;
•показывает список слов из второго файла, не входящих в первый;
•показывает список слов, входящих либо в первый, либо во второй файл, но не входящих в оба файла одновременно.
Подсказка: для выполнения этого анализа используйте операции над множествами.

 

Решение задачи:

def main():
    with open('text1.txt', 'r') as in_line1:
        list_text1 = []
        for i in in_line1:
            for c in i.rstrip('\n').split():
                list_text1.append(c)
    with open('text2.txt', 'r') as in_line2:
        list_text2 = []
        for i in in_line2:
            for c in i.rstrip('\n').split():
                list_text2.append(c)
                
    def get_uniq(value1, value2):
        set_text1= set()
        set_text2 = set()
        set_text1.update(value1)
        set_text2.update(value2)
        return set_text1, set_text2
        
    def get_intersection(value1, value2):
        return value1 | value2

    def get_difference1(value1, value2):
        return value1 - value2
        
    def get_difference2(value1, value2):
        return value2 - value1
        
    def get_simetric_dif(value1, value2):
        return value2 ^ value1
        
    unic_word1, uniq_word2 = get_uniq(list_text1, list_text2)
    intersect_word = get_intersection(unic_word1, uniq_word2)
    diff1 = get_difference1(unic_word1, uniq_word2)
    diff2= get_difference2(unic_word1, uniq_word2)
    simetric_dif = get_simetric_dif(unic_word1, uniq_word2)
    print(f'Список уникальных слов из 1 файла: {unic_word1},\n '
          f'Список уникальных слов из 2 файла: {uniq_word2},\n'
          f'список слов, входящих в оба файла: {intersect_word},\n'
          f'список слов из первого файла, не входящих во второй: {diff1},\n'
          f'список слов из второго файла, не входящих в первый: {diff2},\n'
          f'список слов, входящих либо в первый, либо во второй файл, но не входящих в оба файла одновременно: {simetric_dif}')

main()