Acora不适用于gzip打开的文件

时间:2014-09-14 18:40:11

标签: python parsing gzip

我试图在一个文件上运行Acora解析,该文件在纯文本文件上按预期工作。当我尝试使用python gzip模块(应该允许透明读取压缩文件)在gzip压缩文件上运行它时,我得不到任何回报。这不是一个不将文件倒回到开头的情况,我尝试使用压缩和未压缩的新文件。

from acora import AcoraBuilder

f1 = open('input_file.txt', 'r')
ac = AcoraBuilder(tokens).build()
ac.filefindall(f1)  ## Works as expected

import gzip
f2 = gzip.open('input_file.txt.gz', 'r')
ac = AcoraBuilder(tokens).build()
ac.filefindall(f2)  ## Doesn't work, returns no results

请告诉我这是否是我遗失的内容。

1 个答案:

答案 0 :(得分:0)

我认为Acora并不支持压缩文件。你需要在使用前提取它。

from acora import AcoraBuilder
import gzip

with gzip.GzipFile('input_file.txt.gz', 'rb') as fp:
    f2 = fp.read()

ac = AcoraBuilder(tokens).build()
ac.findall(f2)

无论如何,acora本身支持搜索文件。

keywords = ['Import', 'FAQ', 'Acora', 'NotHere'.upper()]

builder = AcoraBuilder([s.encode('ascii') for s in keywords])
ac = builder.build()

found = set(kw for kw, pos in ac.filefind('README.rst'))