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.exit(1)

def compare_file(file1, file2, out_file):
    file1_content = read_file(file1)
    file2_content = read_file(file2)
    d = difflib.HtmlDiff()
    result = d.make_file(file1_content, file2_content)
    old_str=‘charset=ISO-8859-1‘
    new_str=‘charset=UTF-8‘
    with open(out_file, ‘w‘) as f:
        f.writelines(result.replace(old_str,new_str))

if __name__ == ‘__main__‘:
    compare_file(r‘d:\1\a.log‘, r‘d:\2\a.log‘, r‘d:\result.html‘)

输出为一个result.html文件,打开后已于浏览。

参考:Python--比较文件内容
python使用difflib对比文件示例
Python自动化运维笔记(四):使用difflib模块实现文件内容差异对比

原文地址:http://blog.51cto.com/weiruoyu/2340086

时间: 2024-10-12 21:07:29

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

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

difflib 模块包含一些用来计算和处理序列之间差异的工具.它对于比较文本尤其有用,其中包含的函数可以使用多种常用差异格式生成报告. 实现了三个类: SequenceMatcher 任意类型序列的比较 (可以比较字符串) Differ 对字符串进行比较 HtmlDiff 将比较结果输出为html格式 #!/usr/bin/env python # #-*- coding: utf-8 -*- import difflib import sys try:     textfile1=sys.ar

.NET CORE下最快比较两个文件内容是否相同的方法

最近项目有个需求,需要比较两个任意大小文件的内容是否相同,要求如下: 项目是.NET CORE,所以使用C#进行编写比较方法 文件大小任意,所以不能将文件内容全部读入到内存中进行比较(更专业点说,需要使用非缓存的比较方式) 不依赖第三方库 越快越好 为了选出最优的解决方案,我搭建了一个简单的命令行工程,准备了两个大小为912MB的文件,并且这两个文件内容完全相同.在本文的最后,你可以看到该工程的Main方法的代码. 下面我们开始尝试各个比较方法,选出最优的解决方案: 比较两个文件是否完全相同,首

Python的os模块的一些常见文件和目录操作

转自:极客学院 Python 的 os 模块封装了常见的文件和目录操作,本文只列出部分常用的方法,更多的方法可以查看官方文档. 下面是部分常见的用法: 方法 说明  os.mkdir  创建目录 os.rmdir  删除目录  os.rename  重命名 os.remove 删除文件  os.getcwd 获取当前工作路径 os.walk 遍历目录 os.path.join 连接目录与文件名 os.path.split 分割文件名与目录 os.path.abspath 获取绝对路径 os.pa

合并两个文件内容等相关操作

A 两个文件的交集,并集    前提条件:每个文件中不得有重复行1. 取出两个文件的并集(重复的行只保留一份)cat file1 file2 | sort | uniq > file32. 取出两个文件的交集(只留下同时存在于两个文件中的文件)cat file1 file2 | sort | uniq -d > file33. 删除交集,留下其他的行cat file1 file2 | sort | uniq -u > file3B 两个文件合并一个文件在上,一个文件在下cat file1

比较两个文件内容是否相同

/* 判断两个文件的内容是否相同,文件名要用绝对路径 * @param fileName1 :文件1的绝对路径 * @param fileName2 :文件2的绝对路径 * @return 相同返回true,不相同返回false */ public boolean isSameFile(String fileName1,String fileName2){ FileInputStream fis1 = null; FileInputStream fis2 = null; try { fis1 =

C++文件操作,判断两个文件内容是否相等(被修改)

思路: 方法1:MD5校验文件内容. 方法2:获取文件最后修改时间. 这里介绍方法1 下载MD5类库 1.头部引用: #include "lib/md5.cpp" 2.自己写成一个function,param输入文件路径,return md5字符串 string compare(string folder1){ string fileName = folder1,content,str; unsigned int buf_size=1000000; //1M ifstream file

两个文件内容差异对比,

比较两个单行文件的方法就我知道的而言有4种 用diff 用grep 用comm 用uniq [[email protected] ~]# echo "`seq 5`" >file1;cat file1 1 2 3 4 5 [[email protected] ~]# echo "`seq 2 7`" >file2;cat file2 2 3 4 5 6 7 1.用diff -c file1多的是"-"file2多的是"+&q

python web开发-flask中读取txt文件内容

某些情况下,需要读取flask网站要目录下的txt文件.但是直接在flask网站的目录下创建一个文件是无法访问的.从网站找了一些资料,最终发现通过写一个方法返回txt内容比较简单方便,不过此方法适用于简单的文件读取以及读取量比较小的时候.详细代码如下: @app.route('/<path>')def today(path):base_dir = os.path.dirname(__file__)resp = make_response(open(os.path.join(base_dir,

Sublime Text3 如何比较两个文件内容是否相同

1. 如果已安装sublime并能安装插件的话,可直接安装插件Sublimerge Pro: Cmd + Shift + P 输入Install Package回车 输入Sublimerge Pro回车 安装成功后,在sublime中右键文件->Sublimerge进行对比即可 2. 如果没有下载sublime text的,可在苹果网下载:http://www.pc6.com/mac/120663.html 下载完成后即可直接安装插件了. 3. 安装插件遇到如下图报错的,可以按下面的指引找到ch