2行Python就能实现 "文本文件" 差异比较,太强了!

Python实用宝典

共 1749字,需浏览 4分钟

 ·

2021-08-30 22:52

人生苦短,快学Python!
比如,我们在过去的某个时候写了一段代码。后来,我们由于业务需求,对代码做了部分改动。一段时间过去了,我们想不起来这段代码,究竟改动了哪里?
此时,本文讲述的这个功能,很好的帮助我们解决了这个问题。
这个功能属于filestools库系列功能中,另外一个超级好用的功能。
前面,我写了一篇文章2行Python给图片加水印,太强了!,关于filestools库的安装说明,大家可以参考上述文章。
进行文本文件差异比较,我们需要提前导入如下库的file_diff_compare方法:
from filediff.diff import file_diff_compare
关于这个方法的使用说明,可以先了解一下。
file_diff_compare(file1, file2, diff_out='diff_result.html', max_width=70, numlines=0, show_all=False, no_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行代码就可以搞定。
from filediff.diff import file_diff_compare
file_diff_compare("a.txt""b.txt")
此时,会在你的当前工作环境下,生成一个html网页文件。
双击打开,看看里面有啥!
我们分别为大家讲述图中3个单词的含义:
  • 黄色表示改动过的内容;
  • ②  绿色表示新添加过的内容;
  • 红色表示已经删除过的内容;
关于file_diff_compare方法,还有两个好用的参数,我们一起来看看吧。

1. show_all参数

只要设置这个参数就表示显示全部原始数据,默认不显示全部。
file_diff_compare("a.txt""b.txt", show_all=True)
结果如下:

2. no_browser参数

设置这个参数,在生成结果后,不会自动打开游览器。当设置为False后,会自动打开浏览器。
file_diff_compare("a.txt""b.txt", no_browser=False)
此时,系统会自动打开浏览器文件,省时省力!
如果你想详细学习filestools库,参考下方网站:
https://pypi.org/project/filestools/

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。

有任何问题,可以在公众号后台回复:加群,回答相应红字验证信息,进入互助群询问。

原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!

点击下方阅读原文可获得更好的阅读体验

Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报