文件内容差异对比
来源:互联网 发布:开一个网络主播工作室 编辑:程序博客网 时间:2024/04/30 18:16
difflib模块实现文件内容差异对比,difflib是python的标准库,对比文件之间差异。且支持输出可读性较强的HTML文档,与linux下的diff命令相似。difflib对比代码,配置文件的差别。
这里要介绍一个函数 splitlines()
按行进行分割,返回一个以各行内容为元素的列表 join()
将列表中的元素以指定字符连接成一个新的字符串。 difflib.Differ()
创建一个Differ对象 compare()
对字符串进行比较
`
import difflib
text1 = “”“text1:
This modlue provides classes and functions for comparing swquences.
including HTML and context and unified diffs.
difflib docment
add string
“””
text1_lines = text1.splitlines()
text2 = “”“text2:
This module provides classes and functions for Comparing sequences
including HTML and context and unified diffs.
difflib document v7.5
“””
text2_lines = text2.splitlines()
d = difflib.Differ()
diff = d.compare(text1_lines, text2_lines)
print ‘\n’.join(list(diff))
`
‘-’:包含在第一个序列行中,但不包含在第二个序列行中
‘+’:包含在第二个序列中,但不包含在第一个中
‘’:两个序列一致
‘?’:两个序列行存在增量差异
‘^’:两个序列行存在差异字符
这样的表示我们看的不真切。
我们可以将 d = difflib.Differ()
diff = d.compare(text1_lines, text2_lines)
print '\n'.join(list(diff))
替换成 d = difflib.HtmlDiff()
print d.make_file(text1_lines, text2_lines)
接下来给出一段代码是用来比较两个文件差异的。
`
import difflib
import sys
try:
textfile1 = sys.argv[1]
textfile2 = sys.argv[2]
except Exception, e:
print “Error: ” + str(e)
print “Usage: python diff_tow_file.py filename1 filename2 > info.html”
sys.exit()
def readfile(filename):
try:
fileHandle = open(filename, “rb”)
text = fileHandle.read().splitlines()
fileHandle.close()
return text
except IOError as error:
print (‘Read file Error:’ + str(error))
sys.exit()
if textfile1 == “” or textfile2 == “”:
print “Usage: python diff_tow_file.py filename1 filename2 > info.html”
sys.exit()
text1_lines = readfile(textfile1)
text2_lines = readfile(textfile2)
d = difflib.HtmlDiff()
print d.make_file(text1_lines, text2_lines)
python diff_two_file.py file1 file2 > info.html`
运行时用
- 文件内容差异对比
- Python 通过difflib模块实现文件内容差异对比
- Java 日志文件差异对比
- 简单的内容差异对比函数
- Python自动化运维笔记(四):使用difflib模块实现文件内容差异对比
- 文件内容对比
- 利用TortoiseSVN自动对比文件差异
- Java实现CSV文件差异对比
- Java实现CSV文件差异对比
- 对比文件MD5差异并保存
- python学习之文件差异对比
- 【lizhi125】帮你揪出文档/代码的差异 文档内容差异对比工具-WinMerge中文版
- 有两个不同list,需要对比两个list内容且输出差异的内容
- 两个csv文件差异对比(方法二)
- 用Python xlrd对比两个Excel文件的差异diff
- beyond compare 解决文件一样,对比有差异的问题
- emacs中对比文件差异的工具—ediff
- Dockerfile文件中的CMD和ENTRYPOINT指令差异对比
- windows Socket编程之UDP的服务端和客户端
- Java三大框架之struts的防止重复提交
- 屡败屡战
- static const在c++
- python核心编程十三章练习
- 文件内容差异对比
- 极速入门 正则表达式
- Imgproc_2_杂项图像转换
- 【杭电2006】奇数的乘积
- HMI
- reactJS - 02分离文件
- c语言第一天 终端的使用 .c .o .out 文件的解释 快捷键等
- 高效查看MySQL帮助文档的方法
- 每日一练——从长度为n的数组里选出m个数使和为固定值sum