《轉》
使用python指令碼比較兩個檔案的差異內容並輸出到html文件中,可以通過瀏覽器開啟檢視。
一、指令碼使用
對比nginx配置檔案的差異
python python_diff_file.py -f1 web26.conf -f2 web103.conf
二、指令碼內容
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
1.difflib的htmldiff類建立html**用來展示檔案差異,通過make_file方法
2.make_file方法使用
make_file(fromlines, tolines [, fromdesc][, todesc][, context][, numlines])
用來生成乙個包含**的html檔案,其內容是用來展示差異。
fromlines和tolines,用於比較的內容,格式為字串組成的列表
fromdesc和todesc,可選引數,對應的fromlines,tolines的差異化檔案的標題,預設為空字串
context 和 numlines,可選引數,context 為true時,只顯示差異的上下文,為false,顯示全文,numlines預設為5,
當context為true時,控制展示上下文的行數,當context為false時,控制不同差異的高亮之間移動時「next」的開始位置
3.使用argparse傳入兩個需要對比的檔案
"""
import
difflib
import
argparse
import
sys
# 建立開啟檔案函式,並按換行符分割內容
def
readfile(filename):
try
:
with
open
(filename,
'r'
) as filehandle:
text
=
filehandle.read().splitlines()
return
text
except
ioerror as e:
print
(
"read file error:"
, e)
sys.exit()
# 比較兩個檔案並輸出到html檔案中
def
diff_file(filename1, filename2):
text1_lines
=
readfile(filename1)
text2_lines
=
readfile(filename2)
d
=
difflib.htmldiff()
# context=true時只顯示差異的上下文,預設顯示5行,由numlines引數控制,context=false顯示全文,差異部分顏色高亮,預設為顯示全文
result
=
d.make_file(text1_lines, text2_lines, filename1, filename2, context
=
true
)
# 內容儲存到result.html檔案中
with
open
(
'result.html'
,
'w'
) as resultfile:
resultfile.write(result)
# print(result)
if
__name__
=
=
'__main__'
:
# 定義必須傳入兩個引數,使用格式-f1 filename1 -f2 filename
parser
=
argparse.argumentparser(description
=
"傳入兩個檔案引數"
)
parser.add_argument(
'-f1'
, action
=
'store'
, dest
=
'filename1'
, required
=
true
)
parser.add_argument(
'-f2'
, action
=
'store'
, dest
=
'filename2'
, required
=
true
)
given_args
=
parser.parse_args()
filename1
=
given_args.filename1
filename2
=
given_args.filename2
diff_file(filename1, filename2)
三、對比結果
Powershell比較兩個檔案內容差異
powershell有乙個現成的可以匹配兩個文字內容差異的工具compare object,方便快捷,我們怎麼使用它呢,舉乙個例子,有兩個檔案file1和file2,匹配一下兩個檔案的不同 file1.txt 12 3file2.txt 12 3451 2 3 4 5 6 7 ps c mailbo...
使用shell比較兩個文字的差異
一般工作中會遇到比較兩個文字檔案的不同,類似於第二天新增資料 或者修改資料統計。我查閱資料查到一下兩種方法。說明 1 2 為要比較的兩個文字檔案 此處使用引數代替 1 grep f v f 1 2 sort uniq f 範本檔案 或 file 範本檔案 指定範本檔案,其內容含有乙個或多個範本樣式,...
vim 比較兩個檔案
1.使用vim的比較模式開啟兩個檔案 vim d file1 file2 或vimdiff file1 file2 2.如果已經開啟了檔案file1,再開啟另乙個檔案file2進行比較 vert diffsplit file2 如果沒有用vert命令,diffsplit則會分上下兩個視窗。3.如果已...