我想编写一个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分辨率。
非常感谢您的帮助!