difflib模块
difflib为python的标准库模块,无需安装。作用时对比文本之间的差异。并且支持输出可读性比较强的HTML文档,与Linux下的diff 命令相似。
difflib模块提供的类和方法用来进行序列的差异化比较,它能够比对文件并生成差异结果文本或者html格式的差异化比较页面,
1、对比文件生成差异结果文本
生成的差异文本中的符号解释:
1 先将文本内容按行分割
f1 = splitlines(keepends=True) # 将多行文本按行分隔,返回一个列表,保留行尾换行符
f2 = splitlines(keepends=False) # 将多行文本按行分隔,返回一个列表,不保留行尾换行符
2 生成差异结果文件
import difflib # 导入模块
diff = difflib.Differ() # 生成差异对象
result = diff.compare(f1,f2) # 使用差异对象比较两个文本列表,生成差异结果对象
生成的差异对象不能直接查看,需要转化成列表并连接成文本
示例:
passwd1 :
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
passwd2