ljm_147258mei的个人空间 https://blog.eetop.cn/1768385 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

python diff两个字符串比对差异

已有 445 次阅读| 2023-12-22 14:33 |个人分类:python|系统分类:芯片设计

diff可以比较两个文本文件之间的差异,并在比较结果中展示这些差异。Diff可以找出文件中发生了哪些变化,从而帮助我们追踪代码修改、调试问题,并保证文本文件的版本控制。在Python中使用Diff需要导入difflib库,这个库包含了一些方法、类和函数,可以用来进行字符串、序列等数据类型的比较。

difflib.unified_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n')

a:字符串1

b:字符串2

n:上下文打印的行数

lineterm:没有尾随换行符的输入,将 lineterm 参数设置为 "" 以便输出将统一无换行符


方法1:

import difflib

with open("ori.tcl",'r') as f1,with open("modify.tcl",'r') as f2:
    s1 = f1.readlines()
    s2 = f2.readlines()

diff = difflib.unified_diff(s1,s2,n=0)
for line in diff:
    if line.startswith("-") and not line.startswith("---"):
        print("#GOLDEN: {}".format(line[1:].strip()))
    elif line.startswith("+") and not line.startswith("+++"):
        print("#REVIEW: {}".format(line[1:].strip()))
    elif line.startswith("?"):
        print("#CHANGE: {}".format(line[1:].strip()))


方法2:

用compare方法来对字符串进行比较。最后使用for循环来遍历比较结果,从而展示出两个字符串的差异,这种方式打印出来会比较分散,格式不如上面设定好之后更易读

import difflib

# 读取文件
with open("ori.tcl", "r") as f1, open("modify.tcl", "r") as f2:
    file1 = f1.readlines()
    file2 = f2.readlines()

# 比较文件
d = difflib.Differ()
diff = d.compare(file1, file2)
print('\n'.join(diff))


评论 (0 个评论)

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 0

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 18

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-6-26 10:14 , Processed in 0.059550 second(s), 17 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部