Python 利用HTML頁面查看字串差異

來源:互聯網
上載者:User

1. 比對兩個字串差異.
# vi diff.py
#!/usr/bin/env python

import difflib

text1 = '''text1:
This mudule provides classes and fuctions for comparing sequences.
including HTML and context and unified diffs.
difflib document v7.4
add string
'''
text1_lines = text1.splitlines()

text2 = '''text2:
This mudule provides classes and fuctions for Comparing sequences.
including HTML and  context and unified diffs.
difflib document v7.5
'''
text2_lines = text2.splitlines()

#d = difflib.Differ()
#diff = d.compare(text1_lines, text2_lines)

#print '\n'.join(list(diff))

d = difflib.HtmlDiff()
print d.make_file(text1_lines, text2_lines)
運行指令碼並重新導向為一個html靜態頁面
# chmod 755 diff.py
# ./diff.py  > diff.html
瀏覽器開啟該頁面
如圖:
2. 比對兩個設定檔的差異.
# vi diff02.py
#!/usr/bin/env python

import difflib
import sys

try:
 textfile1 = sys.argv[1]
 textfile2 = sys.argv[2]
except Exception, e:
 print "Error: " + str(e)
 print "Usage: %s filename1 filename2" %sys.argv[0]
 sys.exit()

def readfile(filename):
 try:
  with open(filename, 'rb') as fileHandle:
   text = fileHandle.read().splitlines()
  return text
 except IOError as error:
  print ('Read file Error:' + str(error))
  sys.exit()

if not textfile1 or not textfile2:
 print "Usage: %s filename1 filename2" %sys.argv[0]
 sys.exit()

text1_lines = readfile(textfile1)
text2_lines = readfile(textfile2)

d = difflib.HtmlDiff()

print d.make_file(text1_lines, text2_lines)
# ./diff02.py nginx.conf.v1 nginx.conf.v2 >diff02.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.