Я хотел написать скрипт на python, который дает мне разницу между двумя текстовыми файлами, которые содержат список доменов.
Ниже приведен мой скрипт, который мне удалось создать.
import difflib
file1 = open("2.txt").readlines()
file2 = open("diff.txt").readlines()
with open ('diff.txt', 'w', encoding = 'UTF8') as diff:
for line in difflib.unified_diff(file2,file1,n=0):
for prefix in ('---','+++','@@'):
if line.startswith(prefix):
break
if line.startswith('+'):
diff.write("New DNS Entry:\n{}\n".format(line[1:]))
elif line.startswith('-'):
diff.write("Removed DNS Entry:\n{}\n".format(line[1:]))
Поскольку unified_diff
создает контекст и такие символы, как +++, --- & @@, я изменил свой код, чтобы пропустить этот и отключенный контекст.
Вывод, который я получаю из приведенного выше кода, выглядит следующим образом:
Removed DNS Entry:
--
New DNS Entry:
++
Removed DNS Entry:
example.com
Как видно выше, вывод помечает что-либо с -
как «Удаленный ввод DNS» и что-либо с+
как «Новая запись DNS» и останавливается на самой первой итерации изменения строки между двумя текстовыми файлами (хотя есть несколько изменений, кроме example.com)
Вывод, который я ожидаю, заключается в том, что любая строкакоторый начинается с +
, должен быть сгруппирован и озаглавлен «Новая запись DNS», и аналогично любая строка, начинающаяся с -
, должна быть сгруппирована и озаглавлена «Удаленная запись DNS»
В конце концов, группа«Новые записи DNS» должны отображать соответствующее разрешение DNS.
Любая помощь здесь приветствуется!