我有一个统一的差异文件(我们称之为补丁)。我需要打开它,应用于指定的文件并将结果保存回文件。与Unix patch
工具相同。我需要一个Python解决方案,我可以从我的.py脚本轻松调用,到目前为止我找不到任何。
我看过https://code.google.com/p/google-diff-match-patch/wiki/API,看起来它无法满足我的需求。我还查看了https://github.com/techtonik/python-patch和https://github.com/matiasb/python-unidiff。 python-patch
似乎模仿Unix patch
util,但它是一个命令行工具,我不明白如何从我的.py脚本中调用它。
答案 0 :(得分:10)
使用python-patch:
import patch
pset = patch.fromfile(your_unified_diff_file)
pset.apply()
如果要应用于流/不同命名的输出,则必须创建自己的函数(看看apply正在做什么)。