我试图做一个全面的差异,比较两个程序的命令行输出。我使用difflib并得出以下代码:from difflib import Differ
from pprint import pprint
import sys
def readable_whitespace(line):
return line.replace("\n", "\\n")
# Two strings are expected as input
def print_diff(text1, text2):
d = Differ()
text1 = text1.splitlines(True)
text2 = text2.splitlines(True)
text1 = [readable_whitespace(line) for line in text1]
text1 = [readable_whitespace(line) for line in text2]
result = list(d.compare(text1, text2))
sys.stdout.writelines(result)
sys.stdout.write("\n")
我有一些要求:(很明显)当存在差异时,应该清楚什么是来自哪个输出
新行替换为\n,因为它们在我的案例中很重要,并且在引起冲突时必须清晰可见
我对diff函数做了一个简单的测试:
^{pr2}$
为了方便起见,这里是与函数合并的测试,以便您可以将其作为文件执行:http://pastebin.com/BvQw9naa
我不知道这个输出试图告诉我什么:- AAAAAAA\n? ^^
+ AAAAAAA
? ^
- \n+
BBB
注意到第一行上的两个^符号吗?他们指的是什么。。。?另外,我故意将尾随的新行放入一个测试字符串中。我想迪夫没有注意到这一点。在
如何使输出全面或学会理解?在