difflib为python的标准库模块,无需安装。用于对比文本之间的差异。并且支持输出可读性比较强
的HTML文档,类似Linux系统的diff 命令。应用场景: 代码和配置文件差异对比。
准备工作:
- 两个不同时间备份的Nginx配置文件
- Pycharm集成化编程工具
import difflib
import hashlib
def find_file_different(filename1, filename2, output_filename):
## 1.分析两个配置文件的不同,需要读取文件的内容
with open(filename1) as f:
# 读取文件的所有内容,以列表的数据格式存储,每个元素是一行内容。
content1 = f.readlines()
with open(filename2) as f:
content2 = f.readlines()
# 2. 通过diflib模块对文件内容进行对比
# # 2-1). 实例化 Differ object
# diff = difflib.Differ()
# #比较不同
# results = diff.compare(content1, content2)
# for result in results:
# # result是字符串, result.strip方法是删除字符串前面和后面的空格(广义的空格\n, \t,' ')
# print(result.strip())
# 2-2). 以更美观的方式对文件差异性对比进行展示
hdiff = difflib