0

我想编写一个 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 之外还有多个更改)

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

最终,“新 DNS 条目”组应显示其适当的 DNS 解析。

非常感谢这里的任何帮助!

4

0 回答 0