Python脚本,用于生成文件之间的差异并解析输出的DNS查询

2024-03-29 02:02:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个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

如上所述,输出将任何带有-的内容命名为“Removed DNS Entry”,而带有+的内容命名为“New DNS Entry”,并在两个txt文件之间的行更改的第一次迭代时停止(尽管example.com之外还有多个更改)

我期望的结果是,任何以+开头的行都应该组合在一起并命名为“newdns Entry”,类似地,任何以-开头的行都应该组合在一起并命名为“Removed DNS Entry”

最后,“新DNS条目”组应该显示它们相应的DNS解析

非常感谢您的帮助


Tags: 文件txt脚本newdnslinediffopen