文件内容差异对比方法
目录:
实例: 两个字符串的差异对比
生成美观的对比 html 格式文档
对比 Nginx 配置文件的差异
两个字符串的差异对比
本例通过使用 difflib 模块实现两个字符串的差异对比, 然后以版本控制风格进行输出.
- >>> import difflib
- >>>
- >>> text1="difflib document v7.4" #定义字符串 1
- >>> text2="difflib document v7.5" #定义字符串 2
- >>>
- >>> text1_lines=text1.splitlines() #进行分割, 以便于进行对比>>> text2_lines=text2.splitlines()
- >>>
- >>> diff=difflib.Differ() #创建 Differ() 对象
- >>>
- >>> differ=diff.compare(text1_lines,text2_lines) #采用 compare 方法对比字符串
- >>>
- >>> print('\n'.join(list(differ)))
- difflib document v7.4
? ^
+ difflib document v7.5
- ? ^
- >>>
- // 注释: 对符号含义说明
- // - #包含在第一个序列行中, 但不包含在第二个序列行中
- // + #包含在第二个序列行中, 但不包含在第一个序列行中
- // 空 #两个序列行一致
- // ? #两个序列行存在增量差异
- // ^ #两个序列行存在差异字符
生成美观的对比 HTML 格式文档
采用 HtmlDiff() 类的 make_file() 方法就可以生成美观的 HTML 文档啦.
- >>> import difflib
- >>>
- >>> text1_lines=text1.splitlines()
- >>> text2_lines=text2.splitlines()
- >>>
- >>>
- >>> text1_lines=text1.splitlines()
- >>> text2_lines=text2.splitlines()
- >>>
- >>> diff=difflib.HtmlDiff()
- >>> print(diff.make_file(text1_lines,text2_lines))
- # 将生成的代码保存成 *.html 用浏览器打开就可以看到效果了. 美美哒
对比 Nginx 配置文件的差异
- import difflib
- import sys
- try:
- textfile1 = sys.argv[1] #第一个文件参数
- textfile2 = sys.argv[2] #第二个文件参数
- except Exception (e):
- print ("Error:" +str(e))
- print ("Usage: python sample3.py filename1 filename2")
- 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()
- text1_lines = readfile(textfile1) #调用 readline 函数, 获取分隔后的字符串
- text2_lines = readfile(textfile2)
- d = difflib.HtmlDiff() #创建 htmldiff() 对象
- print (d.make_file(str(text1_lines),str(text2_lines))) #通过 make_file 方法输出 HTML 格式的比对结果
- // 注释: 调用格式 python *.py nginx.conf nginx1.conf> index.html
文件与目录差异对比方法
目录:
模块常用方法说明
实例: 校验源于备份目录的差异
马上更新, 稍安污糟, 撸起袖子加油干!!!!
发送电子邮件模块 SMTPlib
目录:
smtplib 模块的常用类与方法
定制个性化的邮件格式方法
定制常用邮件格式示例详解
探测 web 服务质量的方法
目录:
模块常用方法说明
实例: 实现探测 WEB 服务的质量
来源: http://www.bubuko.com/infodetail-2634293.html