微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可以使用antlr4解析非常大的gzip压缩文件吗?

如何解决可以使用antlr4解析非常大的gzip压缩文件吗?

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

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

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

  • ANTLR4是否可以使用文件流(可能是自定义的)允许它一次读取文件块?类接口应该是什么样的?
  • 基于上面的“是”,该类是否需要处理查找操作,如果基础文件是gzip压缩的,那么这将是一个问题吗?

解决方法

简短回答:不,不可能。

长(长)答案:ANTLR4可以潜在地使用无限提前行,因此它依赖于流而无延迟地搜索到任何位置,否则解析速度将下降至几乎保持不变。因此,所有运行时都使用普通文件流,该文件流可一次读取整个文件。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。