2015-07-15 20 views
5

Tôi đã có một tập tin khác biệt thống nhất (chúng ta hãy gọi nó là một bản vá). Tôi cần phải mở nó, áp dụng cho một tập tin được chỉ định và lưu kết quả trở lại tập tin. Tương tự như công cụ Unix patch. Tôi cần một giải pháp Python mà tôi có thể dễ dàng gọi từ kịch bản .py của tôi, và cho đến nay tôi không thể tìm thấy bất kỳ.Cách Python tinh khiết để áp dụng một khác biệt thống nhất cho một tập tin?

Tôi đã xem https://code.google.com/p/google-diff-match-patch/wiki/API và có vẻ như nó không thể làm những gì tôi cần. Tôi cũng đã xem https://github.com/techtonik/python-patchhttps://github.com/matiasb/python-unidiff. python-patch dường như mô phỏng Unix patch util, nhưng đó là một công cụ dòng lệnh và tôi không hiểu làm thế nào để gọi nó từ kịch bản .py của tôi.

+0

Xem câu trả lời của tôi tại đây: http://stackoverflow.com/a/40967337/431087 –

Trả lời

6

Sử dụng python-patch:

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

Nếu bạn muốn áp dụng cho một dòng/khác tên là đầu ra, bạn sẽ phải thực hiện chức năng riêng của bạn (tìm cách apply đang làm).

Các vấn đề liên quan