python difflib模块实现两个文件差异对比,并输出html格式。

difflib 模块包含一些用来计算和处理序列之间差异的工具。它对于比较文本尤其有用,其中包含的函数可以使用多种常用差异格式生成报告。

实现了三个类:

  • SequenceMatcher 任意类型序列的比较 (可以比较字符串)
  • Differ 对字符串进行比较
  • HtmlDiff 将比较结果输出为html格式
#!/usr/bin/env python
#
#-*- coding: utf-8 -*-
import difflib
import sys
try:
    textfile1=sys.argv[1]
    textfile2=sys.argv[2]
except Exception as e:
    print("Error:"+str(e))
    print("Usage:diff_Simple3.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()
if textfile1=="" or textfile2=="":
    print("Usage:diff_Simple3")
    sys.exit()
text1_lines=readfile(textfile1)
text2_lines=readfile(textfile2)
d = difflib.HtmlDiff()
print(d.make_file(text1_lines,text2_lines))
时间: 2024-08-27 03:08:49

python difflib模块实现两个文件差异对比,并输出html格式。的相关文章

Python使用difflib模块比较两个文件内容异同,同时输出html易浏览

因工作需求,需要对比连个文件异同,并输出html格式来对比. #!/usr/bin/python # -*- coding: utf-8 -*- import sys import difflib def read_file(filename): try: with open(filename, 'r') as f: return f.readlines() except IOError: print("ERROR: 没有找到文件:%s或读取文件失败!" % filename) sys

difflib文件差异对比

1.两个字符串差异对比: #!/usr/bin/env python # -*- coding:utf-8 -*- import difflib text1 = '''text1: This module provides classes and functions for comparing sequences. including HTML and context and unified diffs. difflib document v7.4 add string ''' text1_li

ultraedit比较两个文件差异经验

链接地址:http://jingyan.baidu.com/article/fcb5aff7876551edab4a714b.html 程序开发人员经常要使用到两个文件的对比,有很多工具可以实现该功能,今天使用ultraedit给大家演示如何实现该过程. 工具/原料 windows系统 ultraedit安装包 方法/步骤 下载安装ultraedit,安装好后,桌面出现如下的图标,这个是基本步骤.   点击ultraedit图标,运行程序,出现如下图表,一个程序界面,点击如红色框标示的图标.  

python利用set实现两个文件并集,计数

--python实现两个文件并集,排序,计数 --(1)python版本2.3以上,低版本的python不支持set(),本文采用的是python2.7. import sys import time time_start=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) print time_start num=0 s1 = set(open('/home/work/ctt/20150409.uid','r').rea

Python shutil模块(目录和文件操作)

import shutil #导入shutil模块 copyfileobj方法 将类文件对象fsrc的内容复制到类文件对象fdst shutil.copyfileobj(fsrc, fdst[, length]) 我一般的用法: shutil.copyfileobj(open('file','r'),open('file','w')) 注:如果fsrc对象的当前文件位置不为0,那么将只复制从当前文件位置到文件末尾的内容 copyfile方法 将名为src的文件的内容复制到名为dst的文件中,并返

Python 导入模块的两种方法:import xxx 和from...import xxx

import 方式导入模块 import tool.getsum.add # 导入模块,优先会从启动文件的当前目录开始寻找 # 如果找到,就使用 # 如果找不到,会在系统模块存放目录去 tool.getsum.add.add2num(2,5) 示例: C:\Users\Tom> python Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32 Type "h

python Paramiko模块远程推送文件

#!/usr/bin/python import paramiko def push_file(file):     f = open(file,'r')     running = 1     while running:         line = f.readline()         if line != '':             line = line.strip('\n')             list = line.split(' ')             ip 

python codecs模块 ---处理数据写入文件时会有编码不统一的问题

我们用open方法打开文件有时候会有一些问题,因为open打开文件只能写入str类型,而不会管字符串是什么编码方式. 示例: >>> fr = open('test.txt','a') >>> line1 = "我爱祖国" >>> fr.write(line1) 有编码不统一的时候,此时写入open方式打开的文件就有问题了. >>> line2 = u'我爱祖国' >>> fr.write(lin

python logging模块写入中文,文件乱码的解决方法

一下文件执行将产生乱码,切.log文件显示问好,打不开 import logging def shop_logging(name): name = name+"登录成功!" logger = logging.getLogger() fh = logging.FileHandler("test.log") formatter = logging.Formatter("%(asctime)s - %(name)s-%(levelname)s %(message