首页 > 解决方案 > antlr4可以用来解析非常大的gzip压缩文件吗?

问题描述

我正在尝试在python3中解析非常大的 gzip 压缩(10+GB)文件。我没有创建解析树,而是根据答案中的建议使用了嵌入式操作。

但是,查看FileStream代码它想读取整个文件然后对其进行解析。这不适用于大文件。

所以,这是一个两部分的问题。

标签: python-3.xantlr4

解决方案


简短的回答:不,不可能。

长(错误)答案:ANTLR4 可以潜在地使用无限前瞻,因此它依赖于流来寻找任何位置而没有延迟,否则解析速度将下降到几乎停滞不前。出于这个原因,所有运行时都使用一个普通的文件流来一次读取整个文件。

过去曾讨论/尝试创建一个仅缓冲部分输入的流,但我还没有听说过任何实际有效的方法。


推荐阅读