2016-10-18 3 views
1

Ich bin auf der Suche nach einem Pythonic Weg, um zwei Dateien zu vergleichen file1 und file2 die Unterschiede in Form einer Patch-Datei erhalten und ihre Unterschiede in file2 zusammenführen. Der Code sollte so etwas tun:Wie benutze ich Python diff_match_patch, um einen Patch zu erstellen und anzuwenden

diff file1 file2 > diff.patch 
apply the patch diff.patch to file2 // this must be doing something like git apply. 

ich habe folgenden Beitrag Implementing Google's DiffMatchPatch API for Python 2/3 auf Googles Python API dif_match_patch gesehen, die Unterschiede zu finden, aber ich bin auf der Suche nach einer Lösung zu erstellen und Patch anwenden.

Antwort

2

Zuerst müssen Sie diff_match_patch installieren.

Hier ist mein Code:

import sys 
 
import time 
 
import diff_match_patch as dmp_module 
 

 

 
def readFileToText(filePath): 
 
\t file = open(filePath,"r") 
 
\t s = '' 
 
\t for line in file: 
 
    \t \t s = s + line 
 
\t return s 
 
    
 

 
dmp = dmp_module.diff_match_patch() 
 
origin = sys.argv[1]; 
 
lastest = sys.argv[2]; 
 

 
originText = readFileToText(origin) 
 
lastestText = readFileToText(lastest) 
 

 
patch = dmp.patch_make(originText, lastestText) 
 
patchText = dmp.patch_toText(patch) 
 

 
# floder = sys.argv[1] 
 
floder = '/Users/test/Documents/patch' 
 
print(floder) 
 
patchFilePath = floder 
 
patchFile = open(patchFilePath,"w") 
 
patchFile.write(patchText) 
 

 
print(patchText)

Verwandte Themen