一、文件內(nèi)容差異對比方法:使用difflib自帶模塊,無需安裝
#!/usr/bin/env python
import difflib
test1 = """ my name is Guo Hdong"""
test1_lines = test1.splitlines() #以行進行分割
test2 = """my name is Guo Yanmei"""
test2_lines = test2.splitlines()
d = difflib.Differ()
diff = d.compare(test1_lines,test2_lines)
print('\n'.join(list(diff)))
執(zhí)行結(jié)果
?
輸出結(jié)果符號含義
========================================================================
升級版:輸出為html格式
vim diff.py
#!/usr/bin/env python
import difflib
test1 = """ my name is Guo Hdong"""
test1_lines = test1.splitlines() #以行進行分割
test2 = """my name is Guo Yanmei"""
test2_lines = test2.splitlines()
d = difflib.HtmlDiff()
print(d.make_file(test1_lines,test2_lines))
執(zhí)行腳本并輸出html文件
python diff.py > test.html
?
==========================================================================================================
對比倆個文件的python腳本
vim diff.py
#!/usr/bin/env python
import sys
import difflib
try:
textfile1 = sys.argv[1]
textfile2 = sys.argv[2]
except Exception as e:
print("ERROR:" + str(e))
print("usage: diff.py filename1 filename2")
sys.exit()
def readfile(filename):
try:
fileHandle = open(filename,'r')
text = fileHandle.read().splitlines()
fileHandle.close()
return text
except IOError as error:
print('Read file Error:' + str(error))
sys.exit()
if textfile1 == "" or textfile2 == "":
print("usage: diff.py filename1 filename2")
sys.exit()
text1_lines = readfile(textfile1)
text2_lines = readfile(textfile2)
d = difflib.HtmlDiff()
print(d.make_file(text1_lines,text2_lines))
運行方法:
python diff.py filename1? filename2? > aaa.html
舉例
?