不用git 手動對比檔案差異

2022-07-02 07:36:09 字數 2253 閱讀 2900

使用python指令碼比較兩個檔案的差異內容並輸出到html文件中,可以通過瀏覽器開啟檢視。

對比檔案的差異

python python_diff_file.py -f1 web26.conf -f2 web103.conf

# python 對比函式 -f1 舊檔名 -f2 新檔名

#!/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', encoding="utf-8") 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', encoding="utf-8") as resultfile:

resultfile.write(result)

# print(result)

if __name__ == '__main__':

# 定義必須傳入兩個引數,使用格式-f1 filename1 -f2 filename

parser = argparse.argumentparser(description="傳入兩個檔案引數")

git對比分支差異

git log dev master同理檢視 master 中有,而 dev 中沒有的內容 git log master.dev注意,列出來的是兩個點後邊 此處即dev 多提交的內容。同理,想知道 master 比 dev 多提交了什麼 注意 commit 後面的箭頭,根據我們在 left righ...

git撤銷指令和對比差異指令

1.git status 檢視快取區狀態 我們在工作目錄下建立乙個name.txt資料夾。開啟git bash,輸入git status指令 git提示我們建立了name.txt檔案,但是還未進行add操作加入到快取區,所以git目前無法跟蹤。根據提示我們輸入add指令 git add name.t...

資料夾差異檔案對比工具

coding utf 8 created on 2010 4 30 author shiyong import os class compare object 資料夾比較工具 功能 目前只未比較檔案的名稱和大小,未比較md5 def init self constructor 遍歷比較 def vi...