一个Python扩展模块,它封装了谷歌的DeffyMatChina补丁C++实现,用于非常快速的字符串比较。版本1.0.2修复了Mac上的生成问题。
fast-diff-match的Python项目详细描述
一个Python扩展模块,它封装了谷歌DIFF匹配补丁的C++实现,用于执行非常快的字符串比较。在
google diff match patch是一个google库,用于计算文本文件之间的差异(<;http://code.google.com/p/google-diff-match-patch>;)。它们是各种语言的实现。虽然有一个Python端口,但是在非常大的文档上运行速度很慢,而且我需要速度。我想使用C++实现,但我是Python的家伙,所以我更愿意从Python中使用它。在
谷歌的库依赖Qt 4,所以有些人用标准的C++类库改写了它,使它更便于携带。在<;https://github.com/leutloff/diff-match-patch-cpp-stl>;。在此项目是一个Python扩展模块,用于C++ STL端口,因此Python代码 可以轻松地调用本机库。它在python2和python3中都可以工作。在
示例
第一个:
pip3 install diff_match_patch_python
然后写(这是Python 3):
^{pr2}$该模块还提供了一个名为diff_bytes的方法,用于对字节数组执行diff。在
在python2中,这些方法被命名为diff_unicode(unicode字符串)和diff_str(strstrings)。在
如果您想确保快速得到结果,timelimit参数是以秒为单位的最长运行时间。根据googledocs,diff将在超过时间后停止工作,并返回一个有效的diff,但它可能不是最好的diff。checklines也是Google的一个东西,它可能会加快基于文本的类似于代码的过行的diff。在
diff方法还接受一个counts_only参数,默认情况下是True。将其设置为False,以使返回的值是操作元组和相应字符串的数组,而不是操作和这些字符串的长度。在
源代码构建
要从这些来源进行构建,您需要:
- Python开发头(Debian包python-dev)
- diff match修补程序库,可以使用git submodule update --init克隆该库。在
然后使用以下方法构建二进制模块:
python setup.py install
或者您可以在构建目录中找到存储在git存储库中的预构建二进制文件。 根据您的系统是否兼容,您的里程数可能会有所不同。在
包维护人员
构建一切:
git submodule update && rm -rf build && python setup.py build && python3 setup.py build
在不安装的情况下进行测试:
PYTHONPATH=build/lib.linux-x86_64-2.7/ python test.py PYTHONPATH=build/lib.linux-x86_64-3.4/ python3 test.py
- 项目
标签: