簡體   English   中英

為什么 Python 中 difflib 庫中的 unified_diff 方法遺漏了一些字符?

[英]Why does unified_diff method from the difflib library in Python leave out some characters?

我正在嘗試檢查行之間的差異。 這是我的代碼:

from difflib import unified_diff

s1 = ['a', 'b', 'c', 'd', 'e', 'f']
s2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'k', 'l', 'm', 'n']

for line in unified_diff(s1, s2):
    print line

它打印:

---
+++ 

@@ -4,3 +4,9 @@

 d
 e
 f
+g
+i
+k
+l
+m
+n

“a”、“b”和“c”發生了什么? 謝謝!

如果您查看unified_diff代碼,您會發現有關名為n的參數的描述:

統一差異是一種顯示行更改和幾行上下文的緊湊方式。 上下文行數由“n”設置,默認為三。

在您的情況下, n基本上表示字符數。 如果您為n賦值,那么您將得到正確的 output。此代碼:

from difflib import unified_diff

s1 = ['a', 'b', 'c', 'd', 'e', 'f']
s2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'k', 'l', 'm', 'n']

for line in unified_diff(s1, s2,n=6):
    print line

會產生:

--- 

+++ 

@@ -1,6 +1,12 @@

 a
 b
 c
 d
 e
 f
+g
+i
+k
+l
+m
+n

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM