相关疑难解决方法(0)

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

我有一个统一的差异文件(我们称之为补丁).我需要打开它,应用于指定的文件并将结果保存回文件.与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-unidiff.python-patch似乎模仿Unix patchutil,但它是一个命令行工具,我不明白如何从我的.py脚本调用它.

python diff patch

8
推荐指数
1
解决办法
4424
查看次数

Python Difflib增量和比较Ndiff

我一直想做一些类似的事情,就像我相信变更控制系统所做的那样,它们比较两个文件,并在每次文件更改时保存一个小的差异。我一直在阅读此页面: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)

python difflib delta

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×2

delta ×1

diff ×1

difflib ×1

patch ×1