Python纯手工如何将统一的差异应用到文件中?

9
我有一个统一的diff文件(我们称之为补丁)。我需要打开它,应用于指定的文件并将结果保存回文件。与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实用程序,但它是一个命令行工具,我不知道如何从我的.py脚本中调用它。

1
请查看我的答案:https://dev59.com/lnE95IYBdhLWcg3wb9hb#40967337 - Isaac Turner
1个回答

11
使用python-patch
import patch
pset = patch.fromfile(unified_diff_filename)
pset.apply()

如果您想申请流/不同命名的输出,您将需要自己编写一个函数(看看apply是如何完成的,或者在最新版本中查找def apply)。

2015年发布的最新版本。 - Andreas Haferburg
> 最后一次发布是在2015年。 是的,但是代码库仍在更新并且兼容Python3。 - bufh
它不兼容Python3.9+。 - Jerzy Pawlikowski
这里的情况怎么样?有其他选择吗? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接