使用bsdiff4格式的二进制diff和补丁

bsdiff4的Python项目详细描述


代码主要来自于cx_bsdiff(由anthony tuininga编写, http://cx-bsdiff.sourceforge.net/)。进而导出cx_bsdiff代码 从bsdiff中,可以找到为bsd生成的独立实用程序 在http://www.daemonology.net/bsdiff。 除了cx_bsdiff提供的两个功能(diff和patch)之外,这个 套餐包括:

  • an interface to the BSDIFF4-format
  • command line interfaces: bsdiff4 and bspatch4
  • tests

bsdiff4包定义了以下高级功能:

diff(src_bytes, dst_bytes)->;字节
返回bsdiff4格式修补程序(从src_bytesdst_bytes) 字节。
patch(src_bytes, patch_bytes)->;字节
将bsdiff4格式patch_bytes应用到src_bytes,并返回 字节。
file_diff(src_path, dst_path, patch_path)
将bsdiff4格式修补程序(从文件src_path写入 文件dst_path)到文件patch_path
file_patch(src_path, dst_path, patch_path)
将bsdiff4格式文件patch_path应用于文件src_path 并将结果写入文件dst_path
file_patch_inplace(path, patch_path)
将bsdiff4格式文件patch_path应用于文件path 到位。

示例:

>>> import bsdiff4
>>> a = bytes(100000 * 'a')
>>> b = bytearray(a)
>>> b[100:106] = ' diff '
>>> p = bsdiff4.diff(a, bytes(b))
>>> len(p)
154
>>> bsdiff4.patch(a, p) == b
True

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
junit有没有办法在Java中重新初始化静态类?   在浏览器中点击应用程序时java Play框架挂起   文件Java错误中的NullPointerException   使用Java中的SNMP查找网络中计算机的登录名   java包装服务器引导程序已弃用,有什么替代方案?   当客户在等待理发时,java信号量值是否存在问题?   java如何使用JavaMail仅下载特定类型的附件   如何在java中将十进制转换为十六进制   java Slick2D粒子系统不会生成粒子   java检测更改事件来自何处   将Java集合类型参数类设置为数组   java如何从eclipse导出为可运行JAR文件?   java EntityManager对象未注入Glassfish和Spring   swing从actionPerformed和actionListener Java返回字符串   java在给定另一个等价键对象的情况下获取映射项的当前键   无论输入如何,java网络都会产生相同的输出