| ||
diff可以比较两个文本文件之间的差异,并在比较结果中展示这些差异。Diff可以找出文件中发生了哪些变化,从而帮助我们追踪代码修改、调试问题,并保证文本文件的版本控制。在Python中使用Diff需要导入difflib库,这个库包含了一些方法、类和函数,可以用来进行字符串、序列等数据类型的比较。
difflib.unified_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n')
a:字符串1
b:字符串2
n:上下文打印的行数
方法1:
import difflib with open("ori.tcl",'r') as f1,with open("modify.tcl",'r') as f2: s1 = f1.readlines() s2 = f2.readlines() diff = difflib.unified_diff(s1,s2,n=0) for line in diff: if line.startswith("-") and not line.startswith("---"): print("#GOLDEN: {}".format(line[1:].strip())) elif line.startswith("+") and not line.startswith("+++"): print("#REVIEW: {}".format(line[1:].strip())) elif line.startswith("?"): print("#CHANGE: {}".format(line[1:].strip()))
方法2:
用compare方法来对字符串进行比较。最后使用for循环来遍历比较结果,从而展示出两个字符串的差异,这种方式打印出来会比较分散,格式不如上面设定好之后更易读
import difflib # 读取文件 with open("ori.tcl", "r") as f1, open("modify.tcl", "r") as f2: file1 = f1.readlines() file2 = f2.readlines() # 比较文件 d = difflib.Differ() diff = d.compare(file1, file2) print('\n'.join(diff))