python-文件内容差异对比

通过difflib模块实现文件内容差异对比,它是Python的标准库模块,不需要单独安装,作用是对比文件之间的差异。而且支持输出HTML文档,我们可以用difflib对比代码和配置文件的差别。

1、对比两个字符串的差别

打印一下运行结果:

理解一下输出的内容:

"-"符号:包含在第一个序列中,但不包含在第二个序列中;

"+"符号:包含在第二个序列中,但不包含在第一个序列中;

""(也就是空):两个序列行一致;

"?"符号:表示两个序列行存在增量差异;

"^"符号:标志出两个序列行存在的差异字符。

1、输出HTML格式的文档(使用HtmlDiff()类的make_file()方法)

在执行此脚本的时候我们把它输出成到一个以.html(python check_str.py > diff.html)结尾的文件中,在浏览器中打开查看。

小例子:比如我们维护多个配置文件时,会比较不同版本配置文件的差异,是我们更加清晰的看到增加或修改的差异配置项。实现思路是读取文件内容,以行作为分割,然后对比生成html文档(这里以passwd文件代替配置文件)

原文地址:http://blog.51cto.com/12730062/2064938

时间: 2024-10-10 17:42:54

python-文件内容差异对比的相关文章

Python自动化运维——文件内容差异对比

Infi-chu: http://www.cnblogs.com/Infi-chu/ 模块:difflib 安装:Python版本大于等于2.3系统自带 功能:对比文本之间的差异,而且支持输出可读性比较强的HTML文档,与Linux中的diff命令比较相似. 两个字符串的差异对比: #import difflib #text1=''' #hello world. #how are you. #nice to meet you. #''' #text1_lines=text1.splitlines

文件内容差异对比方法

一.两个字符串的对比 1.两个字符串的对比输出 #!/bin/env python import difflib text1 = """text1: This module provides classes and functions for comparing sequences v7.5""" text1_lines = text1.splitlines() text2 = """text2: This modu

difflib模块实现文件内容差异对比

[[email protected] difflib]# cat  diff.py #!/usr/bin/python import difflib text1 = raw_input("please input text1:") text1_lines = text1.splitlines() text2 =raw_input("please input text2:") text2_lines = text2.splitlines() d =difflib.Ht

两个文件内容差异对比,

比较两个单行文件的方法就我知道的而言有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文件处理(对比和筛选)

#!/user/bin/python #!coding=utf-8 # -*- coding: utf-8 -*- # 2017-9-25 #author:jingwenshuai import sys import difflib import re import os #--------------------------------比对两文件,将结果存入Result.html-------------------------------------------# # 读取配置文件函数 de

python 文件内容修改替换操作

当我们读取文件中内容后,如果想要修改文件中的某一行或者某一个位置的内容,在python中是没有办法直接实现的,如果想要实现这样的操作只能先把文件所有的内容全部读取出来,然后进行匹配修改后写入到新的文件中. 实例代码如下所示: # 打开旧文件 f = open('file_text.txt','r',encoding='utf-8') # 打开新文件 f_new = open('file_text_bak.txt','w',encoding='utf-8') # 循环读取旧文件 for line

Python 文件内容修改-循环+with语句

1 #author F 2 3 #with语句 4 5 with open("test", "r", encoding="utf-8") as f: #with代码块执行完毕时会自动关闭并释放资源 6 for line in f: 7 print(line) 8 9 with open("test", "r", encoding="utf-8") as f_1,10 open("

python文件内容修改

#!/usr/bin/env python # -*- coding: UTF-8 -*- def alter(file,old_str,new_str): file_data = "" with open(file, "r", ) as f: for line in f: if old_str in line: line = line.replace(old_str,new_str) file_data += line with open(file,"w

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