Python2 官方文檔:https://docs.python.org/2/library/difflib.htmlhtml
Python2 官方文檔:https://docs.python.org/3/library/difflib.htmlpython
當咱們維護多個Nginx配置時,時常會對比不一樣版本配置文件的差別,是運維人員更佳清晰地瞭解不一樣版本迭代後的更新項,實現的思路讀取兩個須要對比的配置文件,再以換行符做爲分隔符,調用difflib.HtmlDIff()生成HTML格式的差別文檔。nginx
實現代碼以下:運維
#!/usr/bin/env python import difflib import sys try: textfile1=sys.argv[1] #第一個配置文件路徑參數 textfile2=sys.argv[2] #第二個配置文件路徑參數 except Exception as e: print('Error:' +str(e)) print("Usage: simple3.py filename1 filename2") sys.exit() def readfile(filename): #文件讀取分割函數 try: fileHandle = open(filename,'rt') 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: simple3.py filename1 filename2") sys.exit() text1_lines = readfile(textfile1) #調用readfile函數,獲取分隔後的字符串 text2_lines = readfile(textfile2) d = difflib.HtmlDiff() #建立HtmlDiff()類對象 print(d.make_file(text1_lines,text2_lines)) #經過make_file方法輸出HTML格式的對比結果
[root@localhost diff_lib]# python3 simple3.py nginx.conf.v1 nginx.conf.v2 > diff2.html函數
下圖爲:nginx.conf.v1與nginx.conf.v2配置文件對比結果spa