我有一个统一的差异文件(我们称之为补丁).我需要打开它,应用于指定的文件并将结果保存回文件.与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 patchutil,但它是一个命令行工具,我不明白如何从我的.py脚本调用它.
我一直想做一些类似的事情,就像我相信变更控制系统所做的那样,它们比较两个文件,并在每次文件更改时保存一个小的差异。我一直在阅读此页面:http : //docs.python.org/library/difflib.html,它显然并没有陷入我的脑海。
我试图在下面显示的一个简单程序中重新创建它,但是我似乎缺少的是Delta包含的内容至少与原始文件一样多,甚至更多。
不可能只进行纯粹的改变吗?我要求的原因很明显-节省磁盘空间。
我每次都可以保存整个代码块,但是最好先保存一次当前代码,然后再进行少量更改。
我还在尝试找出为什么许多difflib函数返回一个生成器而不是一个列表,那有什么好处?
difflib对我有用吗?还是我需要找到一个具有更多功能的更专业的软件包?
# Python Difflib demo
# Author: Neal Walters
# loosely based on http://ahlawat.net/wordpress/?p=371
# 01/17/2011
# build the files here - later we will just read the files probably
file1Contents="""
for j = 1 to 10:
print "ABC"
print "DEF"
print "HIJ"
print "JKL"
print "Hello World"
print "j=" + j
print "XYZ"
"""
file2Contents = """
for j = 1 to 10:
print "ABC"
print "DEF"
print "HIJ"
print …Run Code Online (Sandbox Code Playgroud)