是否有一个python模块,用于regex匹配在压缩文件
-
08-06-2019 - |
题
我已经超过一百万个文本的文件压缩到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
解决方案。
不隶属于 StackOverflow