python中differ_python中的difflib

该博客介绍了Python的difflib模块,用于比较文件或字符串的差异。通过示例展示了如何使用Differ类进行文本比较,并分别以纯文本和HTML格式输出差异结果。内容包括'-'、'+'符号的含义,表示文本的增删情况,以及'^'标记的差异字符。
摘要由CSDN通过智能技术生成

#############difflib##############

文件差异对比

示例1:

import difflib

text1 = ‘hello westos‘

text2 = ‘hello zhan‘

text1_lines = text1.splitlines()

text2_lines = text2.splitlines()

# 创建diff对象

d = difflib.Differ()

# 采用compare方法对字符串进行比较

diff = d.compare(text1_lines, text2_lines)

# print list(diff)

print ‘\n‘.join(list(diff))

text1=‘‘‘root:x:0:wfew0:root:/root:/bin/bash

bin:x:1fw:1:bin:/bin:/sbwefwin/nologin

daemon:xw:2:2:daefwmon:/sbin:/sbin/nologin

adm:x:3:4:adwfwfm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

synsfwfsc:x:5:0:sync:/sbin:/bin/sync

shautdowfwfwn:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

‘‘‘

text2=‘‘‘rot:x:0:0:root:/root:/bin/bash

bin:x:1:1:bi:/bin:/sbin/nologindaem

on:x:2:2:daemon:/sbin:/sbin/login

adm:x:3:4:adm:var/adm:/sbin/nolog

lp:x:4:7:lp:/var/spool/lpd:/sbin/nolo

gisync:x:5:0:sync:/sbin:/bin/sync

utdown:x:6:0:shtdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

‘‘‘

第一种方法

import difflib

text1_lines=text1.splitlines()

text2_lines=text2.splitlines()

d=difflib.Differ()

a=d.compare(text1_lines,text2_lines)

a=list(a)

print ‘\n‘.join(a)

测试:

第二种方法

import difflib

text1_lines=text1.splitlines()

text2_lines=text2.splitlines()

# d=difflib.Differ()

# a=d.compare(text1_lines,text2_lines)

# a=list(a)

# print ‘\n‘.join(a)

d=difflib.HtmlDiff()

htmldata=d.make_file(text1_lines,text2_lines)

with open(‘/root/Desktop/data.html‘,‘a+‘) as f:

f.write(htmldata)

测试:

文件差异对比

‘-‘ 包含在第一个中,但不包含在第二个中

‘+‘ 包含在第二个中,但不包含在第一个中

‘ ‘ 两者相同

‘?‘ 两个存在增量差异

‘^‘ 标志出两者行存在的差异字符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值