两行Python就能实现“文本文件”差异比较,太强了!

开发 后端
比如,我们在过去的某个时候写了一段代码。后来,我们由于业务需求,对代码做了部分改动。一段时间过去了,我们想不起来这段代码,究竟改动了哪里?此时,本文讲述的这个功能,很好的帮助我们解决了这个问题。

比如,我们在过去的某个时候写了一段代码。后来,我们由于业务需求,对代码做了部分改动。一段时间过去了,我们想不起来这段代码,究竟改动了哪里?

此时,本文讲述的这个功能,很好的帮助我们解决了这个问题。

这个功能属于filestools库系列功能中,另外一个超级好用的功能。

进行文本文件差异比较,我们需要提前导入如下库的file_diff_compare方法: 

  1. from filediff.diff import file_diff_compare 

关于这个方法的使用说明,可以先了解一下。 

  1. file_diff_compare(file1, file2, diff_out='diff_result.html'max_width=70numlines=0show_all=Falseno_browser=False

file_diff_compare方法一共有7个参数,对这7个参数,分别介绍如下:

  •  file1 / file2:待比较的两个文件,必须文本文件;
  •  diff_out:差异结果保存的文件名(网页格式),默认值diff_result.html;
  •  max_width:每行超过多少字符,就自动换行,默认值70;
  •  numlines:在差异行基础上,前后显示多少行,默认是0;
  •  show_all:只要设置这个参数就表示显示全部原始数据,默认不显示全部;
  •  no_browser:设置这个参数,在生成结果后,不会自动打开游览器。当设置为False后,会自动打开浏览器;

接下来,用一个案例为大家实现文本文件差异比较的效果。

例如:曾经有一个a.txt文件,经过一段时间后,我对其中的内容做了修改,得到了最后的b.txt。

注明:此时这个文本文件内容很少,你用眼睛都可以看出哪里改动了,如果内容超级多呢?

操作很简单,2行代码就可以搞定。 

  1. from filediff.diff import file_diff_compare  
  2. file_diff_compare("a.txt", "b.txt") 

此时,会在你的当前工作环境下,生成一个html网页文件。

双击打开,看看里面有啥!

我们分别为大家讲述图中3个单词的含义:

  •  ① 黄色表示改动过的内容;
  •  ②  绿色表示新添加过的内容;
  •  ③ 红色表示已经删除过的内容;

关于file_diff_compare方法,还有两个好用的参数,我们一起来看看吧。

1. show_all参数

只要设置这个参数就表示显示全部原始数据,默认不显示全部。 

  1. file_diff_compare("a.txt", "b.txt", show_all=True

结果如下:

2. no_browser参数

设置这个参数,在生成结果后,不会自动打开游览器。当设置为False后,会自动打开浏览器。 

  1. file_diff_compare("a.txt", "b.txt", no_browser=False

此时,系统会自动打开浏览器文件,省时省力! 

 

责任编辑:庞桂玉 来源: 菜鸟学Python
相关推荐

2009-09-02 19:08:03

C#实现读取文本文件

2010-04-30 17:38:31

Unix文本

2021-11-29 09:46:11

FileReaderJava开发

2009-08-06 18:33:45

C#处理文本文件

2009-09-02 19:13:08

C#处理文本文件

2010-01-15 10:05:35

VB.NET文件对象

2009-09-04 15:56:35

写入文本文件

2009-08-26 11:53:56

C#打印文本文件

2010-11-15 15:06:58

ORACLE数据库记录

2015-06-17 14:28:15

Java查询处理方法

2014-03-11 10:11:33

Linux命令more命令文本文件

2010-02-01 14:26:50

C++读写文本文件

2009-08-19 17:44:15

C#操作文本文件

2024-02-20 12:49:00

CSS函数前端

2009-08-20 09:15:20

C#操作文本文件

2023-03-31 23:31:06

.go文本文件

2022-09-29 10:01:05

Go编程语言文本文件

2009-08-20 10:17:27

C#操作文本文件

2010-05-13 17:43:43

IIS服务器

2009-10-29 14:16:32

VB.NET读写文本文
点赞
收藏

51CTO技术栈公众号