當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python difflib.unified_diff用法及代碼示例


用法:

difflib.unified_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n')

比較ab(字符串列表);以統一的差異格式返回一個增量(生成增量線的生成器)。

統一差異是一種僅顯示已更改的行加上幾行上下文的緊湊方式。更改以內聯樣式顯示(而不是單獨的前後塊)。上下文行數由n 設置,默認為三。

默認情況下,差異控製線(帶有 ---+++@@ 的控製線)是使用尾隨換行符創建的。這很有幫助,因此從 io.IOBase.readlines() 創建的輸入會產生適合與 io.IOBase.writelines() 一起使用的差異,因為輸入和輸出都有尾隨換行符。

對於沒有尾隨換行符的輸入,將 lineterm 參數設置為 "" 以便輸出將統一無換行符。

上下文差異格式通常具有文件名和修改時間的標題。可以使用 fromfiletofilefromfiledatetofiledate 的字符串指定任何或所有這些。修改時間通常以 ISO 8601 格式表示。如果未指定,則字符串默認為空白。

>>> s1 = ['bacon\n', 'eggs\n', 'ham\n', 'guido\n']
>>> s2 = ['python\n', 'eggy\n', 'hamster\n', 'guido\n']
>>> sys.stdout.writelines(unified_diff(s1, s2, fromfile='before.py', tofile='after.py'))
--- before.py
+++ after.py
@@ -1,4 +1,4 @@
-bacon
-eggs
-ham
+python
+eggy
+hamster
 guido

有關更詳細的示例,請參閱 difflib 的命令行 接口。

相關用法


注:本文由純淨天空篩選整理自python.org大神的英文原創作品 difflib.unified_diff。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。