纯Python方式将统一差异应用于文件?

时间:2015-07-15 15:28:11

标签: python diff patch

我有一个统一的差异文件(我们称之为补丁)。我需要打开它,应用于指定的文件并将结果保存回文件。与Unix patch工具相同。我需要一个Python解决方案,我可以从我的.py脚本轻松调用,到目前为止我找不到任何。

我看过https://code.google.com/p/google-diff-match-patch/wiki/API,看起来它无法满足我的需求。我还查看了https://github.com/techtonik/python-patchhttps://github.com/matiasb/python-unidiffpython-patch似乎模仿Unix patch util,但它是一个命令行工具,我不明白如何从我的.py脚本中调用它。

1 个答案:

答案 0 :(得分:10)

使用python-patch

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

如果要应用于流/不同命名的输出,则必须创建自己的函数(看看apply正在做什么)。