2015-07-15 12 views
5

Mam zunifikowany plik diff (nazwijmy to łatką). Muszę go otworzyć, zastosować do określonego pliku i zapisać wynik z powrotem do pliku. Działa to tak samo, jak narzędzie Unix patch. Potrzebuję rozwiązania Python, które mógłbym łatwo wywołać ze skryptu .py i jak dotąd nie mogę go znaleźć.Czysty sposób Pythona do zastosowania ujednoliconego pliku diff do pliku?

Spojrzałem na https://code.google.com/p/google-diff-match-patch/wiki/API i wygląda na to, że nie może zrobić tego, czego potrzebuję. Przyjrzałem się także https://github.com/techtonik/python-patch i https://github.com/matiasb/python-unidiff. python-patch wydaje się emulować Unix patch util, ale jest to narzędzie wiersza poleceń i nie rozumiem, jak wywołać to ze skryptu .py.

+0

Zobacz moją odpowiedź tutaj: http://stackoverflow.com/a/40967337/431087 –

Odpowiedz

6

Korzystanie python-patch:

import patch 
pset = patch.fromfile(your_unified_diff_file) 
pset.apply() 

Jeśli chcesz zastosować do strumienia/różnie nazwie wyjścia, trzeba będzie zrobić własną funkcję (wyglądają jak apply robi).

Powiązane problemy