使用Python脚本在文件之间产生差异并解析DNS查询输出

时间:2019-05-13 08:38:33

标签: python regex difflib dnspython

我想编写一个python脚本,让我了解包含域列表的两个txt文件之间的区别。

下面是我可以创建的脚本。

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条目”进行标题,并在第一个两个txt文件(尽管对example.com进行了许多更改)

我期望的输出是,以+开头的任何行都应该组合在一起,并命名为“ New DNS Entry”,以-开头的任何行都应该组合在一起,并且标题为“已删除的DNS条目”

最终,“新DNS条目”组应显示其适当的DNS分辨率。

非常感谢您的帮助!

0 个答案:

没有答案