Скрипт Python для создания различий между файлами и разрешения DNS-запроса для вывода - PullRequest
0 голосов
/ 13 мая 2019

Я хотел написать скрипт на 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.

Любая помощь здесь приветствуется!

...