Python

Нужно из двух .txt файлов выделить в два .txt файла повторы и уникальные

Например:
Файл 1.txt имеет содержание Коля
Файл 2.txt имеет содержание Юля, Коля, Саша
Получить нужно:
duplicates.txt имеет содержание Коля
uniques.txt имеет содержание Юля, Саша
 with (open('file1.txt', 'r') as f1, open('file2.txt', 'r') as f2, open('duplicates.txt', 'w') as fd, open('uniques.txt', 'w') as fu): 
file1_content = {line.strip() for line in f1}
file2_content = {line.strip() for line in f2}
duplicates = file1_content.intersection(file2_content)
uniques = file1_content.union(file2_content) - duplicates
fd.write('\n'.join(duplicates))
fu.write('\n'.join(uniques))
Либо, если слова через запятую.
 with (open('file1.txt', 'r') as f1, open('file2.txt', 'r') as f2, open('duplicates.txt', 'w') as fd, open('uniques.txt', 'w') as fu):  
file1_content = {line.strip(",") for line in f1}
file2_content = {line.strip(",") for line in f2}
duplicates = file1_content.intersection(file2_content)
uniques = file1_content.union(file2_content) - duplicates
fd.write('\n'.join(duplicates))
fu.write('\n'.join(uniques))
Николай Фабричнов
Николай Фабричнов
13 649
Лучший ответ
Николай Фабричнов
 with open('file1.txt', 'r') as f1, open('file2.txt', 'r') as f2, open('duplicates.txt', 'w') as fd, open('uniques.txt', 'w') as fu: 
file1_content = {line.strip() for line in f1}
file2_content = {line.strip() for line in f2}
duplicates = file1_content & file2_content
uniques = file1_content | file2_content
fd.write('\n'.join(duplicates))
fu.write('\n'.join(uniques))
Лучше даже так
Николай Фабричнов Хотя нет, не лучше
Николай Фабричнов
 with (open('file1.txt', 'r') as f1, open('file2.txt', 'r') as f2, open('duplicates.txt', 'w') as fd, open('uniques.txt', 'w') as fu):
file1_content = {line.strip("\n") for line in f1}
file2_content = {line.strip("\n") for line in f2}
duplicates = file1_content.intersection(file2_content) # ищем дубликаты
uniques = file1_content.union(file2_content) - duplicates
fd.write('\n'.join(duplicates))
fu.write('\n'.join(uniques))
Вот самый норм вариант.
Николай Фабричнов
 with open('file1.txt', 'r') as f1, open('file2.txt', 'r') as f2, open('duplicates.txt', 'w') as fd, open('uniques.txt', 'w') as fu: 
file1_content = {line.strip("\n") for line in f1}
file2_content = {line.strip("\n") for line in f2}
duplicates = file1_content & file2_content
uniques =( file1_content | file2_content)- duplicates
fd.write('\n'.join(duplicates))
fu.write('\n'.join(uniques))
В общем вот, в идеале.
Николай Фабричнов
 with open('file1.txt', 'r') as f1, open('file2.txt', 'r') as f2, open('duplicates.txt', 'w') as fd, open('uniques.txt', 'w') as fu: 
file1_content = {line.strip("\n") for line in f1}
file2_content = {line.strip("\n") for line in f2}
duplicates = file1_content & file2_content
uniques =( file1_content | file2_content)- duplicates
fd.write('\n'.join(duplicates))
fu.write('\n'.join(uniques))
В общем в идеале
Открыть первый файл и прочитать его содержимое в список
Открыть второй файл и прочитать его содержимое в список
Найти все повторяющиеся элементы в двух списках и добавить их в список повторов
Найти все уникальные элементы в двух списках и добавить их в список уникальных элементов
Открыть файл duplicates.txt и записать в него все элементы из списка повторов
Открыть файл uniques.txt и записать в него все элементы из списка уникальных элементов
Ниже приведен код на Python, который реализует данный алгоритм:
 # Открыть первый файл и прочитать его содержимое в список 
with open("1.txt", "r") as file1:
content1 = file1.read().splitlines()

# Открыть второй файл и прочитать его содержимое в список
with open("2.txt", "r") as file2:
content2 = file2.read().splitlines()

# Найти все повторяющиеся элементы в двух списках и добавить их в список повторов
duplicates = set(content1) & set(content2)

# Найти все уникальные элементы в двух списках и добавить их в список уникальных элементов
uniques = set(content1) ^ set(content2)

# Открыть файл duplicates.txt и записать в него все элементы из списка повторов
with open("duplicates.txt", "w") as duplicates_file:
for item in duplicates:
duplicates_file.write(item + "\n")

# Открыть файл uniques.txt и записать в него все элементы из списка уникальных элементов
with open("uniques.txt", "w") as uniques_file:
for item in uniques:
uniques_file.write(item + "\n")
После выполнения данного кода в файле duplicates.txt будет содержаться строка Коля, а в файле uniques.txt будут содержаться строки Юля и Саша.