librsync的python cTypes包装器。

python-librsync的Python项目详细描述


SmartFile

一个SmartFile开源项目。Read more关于smartfile如何 使用和贡献开源软件。

Travis CI StatusCode CoverageLatest PyPI versionNumber of PyPI downloads

简介

librsync的cTypes包装器。提供signature()delta()patch()函数。

同步文件需要三个步骤。执行两个步骤 在源文件上,在目标文件上。

  1. 为目标文件生成签名。
  2. 为源文件生成增量(使用签名)。
  3. 使用生成的增量修补目标文件。

通常,这些步骤涉及远程系统。下面是一个同步的例子 两个本地文件。

importlibrsync# The destination file.dst=file('Resume-v1.0.pdf','rb')# The source file.src=file('Resume-v1.2.pdf','rb')# Where we will write the synchronized copy.synced=file('Resume-latest.pdf','wb')# Step 1: prepare signature of the destination filesignature=librsync.signature(dst)# Step 2: prepare a delta of the source filedelta=librsync.delta(src,signature)# Step 3: synchronize the files.# In many cases, you would overwrite the destination with the result of# synchronization. However, by default a new file is created.librsync.patch(dst,delta,synced)

延伸

这个包装器只公开librsync提供的最常见的操作。它 不是一个完整的包装器,但是应该覆盖大多数用例。你可以 很容易扩展这个包装。关于librsync的信息可以从 下面链接的手册(我希望在写这篇文章之前就找到了 包装袋!)

http://rproxy.samba.org/doxygen/librsync/refman.pdf

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

推荐PyPI第三方库


热门话题
tomcat Java条带错误   java OPENTSDB fsck修复程序不更正重复点   java JavaFX在控制器内切换自身的可见性   java maven surefire插件未并行执行运行程序   读取导致Freemarker模板引擎中TemplateException的Java对象   无法使Java库与我的Android应用程序一起工作   安卓 java。lang.IllegalStateException游标   使用Java检索XML文件中的XSL URL和名称   java如何从文本文件集合中提取特定值   电子邮件java mail gmail   java为什么finalize()只被垃圾收集器调用一次?   java方法findViewById(int)对于Json类型是未定义的。蛇形   java在安卓中尝试从brother打印机打印位图时遇到以下异常   java在颤振中支持Kotlin的优势   java从后面编写文本   java制作列表。第一个列表可以有相同的数字,第二个将是价格,尝试制作第三个列表,如果它们是相同的数字,它将添加价格