文本解析器。

textparser的Python项目详细描述


buildstatuscoverage

关于

用python语言编写的文本解析器。

这个项目只有一个目标,速度!更多细节见下面的基准。

项目主页:https://github.com/eerimoq/textparser

文档:http://textparser.readthedocs.org/en/latest

学分

  • 感谢PyParsing提供了一个用户友好的界面。许多 textparser的类名取自此项目。

安装

pipinstalltextparser

示例用法

Hello World示例解析字符串Hello, World!并 输出其解析树['Hello', ',', 'World', '!']

脚本:

importtextparserfromtextparserimportSequenceclassParser(textparser.Parser):deftoken_specs(self):return[('SKIP',r'[ \r\n\t]+'),('WORD',r'\w+'),('EMARK','!',r'!'),('COMMA',',',r','),('MISMATCH',r'.')]defgrammar(self):returnSequence('WORD',',','WORD','!')tree=Parser().parse('Hello, World!')print('Tree:',tree)

脚本执行:

$ env PYTHONPATH=. python3 examples/hello_world.py
Tree: ['Hello', ',', 'World', '!']

基准

abenchmark比较10个json解析器的速度,解析a276 kb file

$ env PYTHONPATH=. python3 examples/benchmarks/json/speed.py

Parsed 'examples/benchmarks/json/data.json' 1 time(s) in:

PACKAGE         SECONDS   RATIO  VERSION
textparser         0.09    100%  0.19.0
parsimonious       0.17    183%  unknown
lark (LALR)        0.29    306%  0.6.6
funcparserlib      0.33    346%  unknown
textx              0.53    557%  1.8.0
pyparsing          0.67    710%  2.3.1
pyleri             0.78    825%  1.2.2
parsy              0.91    969%  1.2.0
lark (Earley)      2.11   2240%  0.6.6
parsita            2.26   2393%  unknown

注意1:解析器不一定针对 速度。优化它们可能会影响测量。

注2:结果解析树的结构各不相同,并且 可能需要额外的处理以使它们适合用户 申请。

注意3:只比较json解析器。解析其他语言可能 给出截然不同的结果。

贡献

  1. 分叉存储库。

  2. 安装必备组件。

    pip install -r requirements.txt
    
  3. 实现新功能或错误修复。

  4. 实施测试用例以确保将来的更改不会中断 遗产。

  5. 运行测试。

    make test
    
  6. 创建拉取请求。

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

推荐PyPI第三方库


热门话题
java GridBagLayout不填充区域   java Memozied Fibonacci未运行与常规Fibonacci解决方案   Java Web启动未启动问题   Java中异常和if-then的区别   java从命令提示符运行批处理文件获取错误   socket在Java中验证SSL证书的公共名称   如何在JAVA中检查字符串数组中的相等字   用java语言将音频文件转换成文本文件的语音识别   java为什么foo(1,2,3)没有传递给varargs方法foo(对象…)作为整数[]   java通过蓝牙将奇怪的数据从Arduino传输到Android   java ContainerRequestFilter获取空entitystream   java如何从安卓 studio中删除不兼容类型错误   基本Java错误   在Spring引导中使用REST API时发生java错误   javascript通过从SQL查询派生的URL打开页面