3.3.6 使用difflib.context_diff函数

只想简单地比较一下文本之间是否有变化,就可以函数defflib.context_diff来实现。

例子:

#python3.4.3

import difflib

text1 = ‘‘‘  1. Beautiful is better than ugly.
   2. Explicit is better than implicit.
   3. Simple is better than complex.
   4. Complex is better than complicated.
 ‘‘‘.splitlines(keepends=True)

text2 = ‘‘‘  1. Beautiful is better than ugly.
   3.   Simple is better than complex.
   4. Complicated is better than complex.
   5. Flat is better than nested.
   0. test
 ‘‘‘.splitlines(keepends=True)

for line in difflib.context_diff(text1, text2, ‘fromfile‘, ‘tofile‘,
                                 ‘fromfiledate‘, ‘tofiledate‘, 1, ‘\n‘):
    print(line)

结果输出如下:

*** fromfile fromfiledate

--- tofile tofiledate

***************

*** 1,5 ****

1. Beautiful is better than ugly.

!    2. Explicit is better than implicit.

!    3. Simple is better than complex.

!    4. Complex is better than complicated.

--- 1,6 ----

1. Beautiful is better than ugly.

!    3.   Simple is better than complex.

!    4. Complicated is better than complex.

!    5. Flat is better than nested.

!    0. test

在每行头有!的,就表示此行已经作出改变。

蔡军生 微信号:shenzhencai  深圳

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 05:42:26

3.3.6 使用difflib.context_diff函数的相关文章

3.3.10 使用difflib.unified_diff函数

可以使用本函数来生成统一的差异结果文本,只要拿到第一个文本,再通过这个差异文本进行操作,就可以得到第二个文本,从而减少储存两份文件,缩小储存空间. 例子: #python3.4.3 import difflib diff = difflib.unified_diff('one\ntwo\nthree\n'.splitlines(keepends=True), 'ore\ntwo\nthree\nemu\n'.splitlines(keepends=True)) for line in diff:

每日一“酷”之difflib

介绍:difflib 比较序列.该模块包含一些用来计算和处理序列直接差异的工具.她对于比较文本尤其用,其中包含的函数可以使用多种常用差异格式生成报告. 测试数据(splitlines()按行划分为序列列表): text1 = """ We all know that English is very useful. Many people in the world speak English. So more and more people in China study it.

python difflib详解

difflib -帮助进行差异化比较 这个模块提供的类和方法用来进行差异化比较,它能够生成文本或者html格式的差异化比较结果,如果需要比较目录的不同,可以使用filecmp模块. class difflib.SequenceMatcher 这是可以用来比较任何类型片段的类,只要比较的片段是可hash的,都可以用来比较,使用非常灵活.他源于1980,s的“完形匹配算法”,并且进行了一系列的优化和改进. 通过对算法的复杂度比较,它由于原始的完形匹配算法,在最坏情况下有n的平方次运算,在最好情况下,

Python练习【7】【文件对比并输出可读性较强的html文件】

题目: 利用python写出一个可在shell中执行的命令mydiff,用于比对两个文件之间的区别,输出可读性较强的html页面源码,可保存到html文件中进行查看. 格式: mydiff file1 file2 [> save_file] 实现: 1.利用sys.argv函数获取从命令行输入的参数,用于传递参数 if len(sys.argv) !=3: # 如果参数数量不为3个输出命令的使用提示 print(''' usage: {} file1 file2 [>] [file to sa

python difflib.md

difflib 此模块提供了用于比较序列的类和函数.它可以用于例如比较文件,并且可以产生各种格式的差异信息,包括HTML和上下文以及统一差异. difflib 模块包含用于计算和处理序列间差异的工具.它特别适用于比较文本,包括使用几种常见差异格式生成报告的函数. 本节中的示例将在扩散数据中使用这个常见的测试difflib_data.py模块: text1 = """Lorem ipsum dolor sit amet, consectetuer adipiscing elit

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

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

1.3.2 常用内置函数

常用内置函数(Built-In Functions,BIF)不需要导入任何模块即可直接使用,在IDLE中执行如下命令可以列出所有内置函数和内置对象,如代码块1.3.2.1所示: 1 >>> dir(__builtins__) 2 ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'Byte

python运维开发常用模块(四)文件对比模块difflib

1.difflib介绍 difflib作为 Python的标准库模块,无需安装,作用是对比文本之间的差异,且支持 输出可读性比较强的HTML文档,与Linux下的diff命令相似.我们可以 使用difflib对比代码.配置文件的差别,在版本控制方面是非常有用. Python 2.3或更高版本默认自带difflib模块,无需额外安装. 示例1:两个字符串的差异对比 [[email protected] part2]$ cat simple1.py #!/usr/bin/python #_*_cod

js高阶函数

map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81] reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个