首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅使用有差异的context_diff打印行

仅使用有差异的context_diff打印行
EN

Stack Overflow用户
提问于 2021-10-20 12:32:10
回答 1查看 678关注 0票数 0

我有下面的代码,它打印了两个文件之间的差异,并且我使用了来自difflib模块的context_diff。

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
{ 
“Name” : “John”,
“Occupation” : “Manager”, 
“Age” : 35,
“Company” : “vTech”
}

filename2.json

代码语言:javascript
运行
复制
{ 
“Name” : “Mel”,
“Occupation” : “Developer”, 
“Age” : 35,
“Company” : “vTech”
}

我只想打印那些有差异的线条。我们能做到吗?如果是的话,请建议。谢谢,我是预支。

预期产出:

好了!“姓名”:“约翰”

好了!“职业”:“经理”,

好了!“姓名”:“梅尔”

好了!“职业”:“发展商”,

实际输出

好了!“姓名”:“约翰”

好了!“职业”:“经理”,

“年龄”:35

“公司”:“vTech”

好了!“姓名”:“梅尔”

好了!“职业”:“发展商”,

“年龄”:35

“公司”:“vTech”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-20 12:35:44

来自医生们

代码语言:javascript
运行
复制
 difflib.context_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n')

上下文差异是一种简洁的方式,它只显示已经改变的线条,加上几行上下文。更改显示在“前后”样式中。上下文行数由n设置,默认为3行。

尝试将n设置为0以不显示上下文:

代码语言:javascript
运行
复制
diff = difflib.context_diff(file1.readLines(), file2.readLines(), n=0)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69646046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档