兩行Python就能實(shí)現(xiàn)“文本文件”差異比較,太強(qiáng)了!
比如,我們在過去的某個(gè)時(shí)候?qū)懥艘欢未a。后來,我們由于業(yè)務(wù)需求,對代碼做了部分改動(dòng)。一段時(shí)間過去了,我們想不起來這段代碼,究竟改動(dòng)了哪里?
此時(shí),本文講述的這個(gè)功能,很好的幫助我們解決了這個(gè)問題。
這個(gè)功能屬于filestools庫系列功能中,另外一個(gè)超級(jí)好用的功能。
進(jìn)行文本文件差異比較,我們需要提前導(dǎo)入如下庫的file_diff_compare方法:
- from filediff.diff import file_diff_compare
關(guān)于這個(gè)方法的使用說明,可以先了解一下。
- 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個(gè)參數(shù),對這7個(gè)參數(shù),分別介紹如下:
- file1 / file2:待比較的兩個(gè)文件,必須文本文件;
- diff_out:差異結(jié)果保存的文件名(網(wǎng)頁格式),默認(rèn)值diff_result.html;
- max_width:每行超過多少字符,就自動(dòng)換行,默認(rèn)值70;
- numlines:在差異行基礎(chǔ)上,前后顯示多少行,默認(rèn)是0;
- show_all:只要設(shè)置這個(gè)參數(shù)就表示顯示全部原始數(shù)據(jù),默認(rèn)不顯示全部;
- no_browser:設(shè)置這個(gè)參數(shù),在生成結(jié)果后,不會(huì)自動(dòng)打開游覽器。當(dāng)設(shè)置為False后,會(huì)自動(dòng)打開瀏覽器;
接下來,用一個(gè)案例為大家實(shí)現(xiàn)文本文件差異比較的效果。
例如:曾經(jīng)有一個(gè)a.txt文件,經(jīng)過一段時(shí)間后,我對其中的內(nèi)容做了修改,得到了最后的b.txt。
注明:此時(shí)這個(gè)文本文件內(nèi)容很少,你用眼睛都可以看出哪里改動(dòng)了,如果內(nèi)容超級(jí)多呢?
操作很簡單,2行代碼就可以搞定。
- from filediff.diff import file_diff_compare
- file_diff_compare("a.txt", "b.txt")
此時(shí),會(huì)在你的當(dāng)前工作環(huán)境下,生成一個(gè)html網(wǎng)頁文件。
雙擊打開,看看里面有啥!
我們分別為大家講述圖中3個(gè)單詞的含義:
- ① 黃色表示改動(dòng)過的內(nèi)容;
- ② 綠色表示新添加過的內(nèi)容;
- ③ 紅色表示已經(jīng)刪除過的內(nèi)容;
關(guān)于file_diff_compare方法,還有兩個(gè)好用的參數(shù),我們一起來看看吧。
1. show_all參數(shù)
只要設(shè)置這個(gè)參數(shù)就表示顯示全部原始數(shù)據(jù),默認(rèn)不顯示全部。
- file_diff_compare("a.txt", "b.txt", show_all=True)
結(jié)果如下:
2. no_browser參數(shù)
設(shè)置這個(gè)參數(shù),在生成結(jié)果后,不會(huì)自動(dòng)打開游覽器。當(dāng)設(shè)置為False后,會(huì)自動(dòng)打開瀏覽器。
- file_diff_compare("a.txt", "b.txt", no_browser=False)
此時(shí),系統(tǒng)會(huì)自動(dòng)打開瀏覽器文件,省時(shí)省力!