我已经超过一百万个文本的文件压缩到40zip文件。我也有一个清单的大约500型姓名的电话。我想要找出去的次数的一个特定的模式中提到的文本文件。

是否有任何python模块,该模块可以做regex匹配的文件,没有解压。是有一个简单的方法来解决这个问题没有解压?

有帮助吗?

解决方案

没有什么将自动做你想要什么。

然而,那里是蟒蛇出压缩文件的模块,这将使这个容易做到的。这怎么迭代过在线文件。

#!/usr/bin/python

import zipfile
f = zipfile.ZipFile('myfile.zip')

for subfile in f.namelist():
    print subfile
    data = f.read(subfile)
    for line in data.split('\n'):
        print line

其他提示

你可以循环,通过压缩文件,阅读单独的文件使用的出压缩文件的模块和运行regex上的那些,消除压缩解压的所有文件的一次。

我相当肯定,你不能运行regex过压缩的数据,至少没有意义。

访问的内容的一个压缩文件你必须解压,虽然出压缩文件包使得这种相当容易的,因为你可以解每一文件的内存档。

蟒蛇出压缩文件的模块

是不是(至少在理论上)可能的话,在阅读拉链是霍夫曼的编码,然后翻译regexp到霍夫曼代码?这可能会更有效率比第一解压缩的数据,然后运行的regexp?

(注:我知道这不是很简单:你也有要处理的其他方面的邮政编码文件的布局,块结构,回来-参考文献—但是人们想象,这可能是相当重量轻。)

编辑:还注意到,它可能是更明智的做法只是使用 zipfile 解决方案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top