我有下面的代码,它打印了两个文件之间的差异,并且我使用了来自difflib模块的context_diff。
import difflib
file1 = open(“filename1.json”,”r”)
file2 = open(“filename2.json”,”r”)
diff = difflib.context_diff(file1.readLines(), file2.readLines())
delta = ‘’.join(diff)
print(delta)
filename1.json
{
“Name” : “John”,
“Occupation” : “Manager”,
“Age” : 35,
“Company” : “vTech”
}
filename2.json
{
“Name” : “Mel”,
“Occupation” : “Developer”,
“Age” : 35,
“Company” : “vTech”
}
我只想打印那些有差异的线条。我们能做到吗?如果是的话,请建议。谢谢,我是预支。
预期产出:
好了!“姓名”:“约翰”
好了!“职业”:“经理”,
好了!“姓名”:“梅尔”
好了!“职业”:“发展商”,
实际输出
好了!“姓名”:“约翰”
好了!“职业”:“经理”,
“年龄”:35
“公司”:“vTech”
好了!“姓名”:“梅尔”
好了!“职业”:“发展商”,
“年龄”:35
“公司”:“vTech”
发布于 2021-10-20 12:35:44
来自医生们
difflib.context_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n')
上下文差异是一种简洁的方式,它只显示已经改变的线条,加上几行上下文。更改显示在“前后”样式中。上下文行数由n设置,默认为3行。
尝试将n
设置为0
以不显示上下文:
diff = difflib.context_diff(file1.readLines(), file2.readLines(), n=0)
https://stackoverflow.com/questions/69646046
复制相似问题