有没有用于在zip文件中进行正则匹配的Python模块?
我有超过一百万个文本文件,这些文件被压缩成了40个zip文件。我还有大约500个手机型号的名称列表。我想知道在这些文本文件中,某个特定型号被提到的次数。
有没有什么Python模块可以在不解压缩文件的情况下,对这些文件进行正则表达式匹配?有没有简单的方法可以解决这个问题,而不需要解压缩?
4 个回答
0
理论上来说,能不能直接读取ZIP文件里的霍夫曼编码,然后把正则表达式转换成霍夫曼代码呢?这样做会不会比先解压数据再运行正则表达式更有效率呢?
(注意:我知道这并不是那么简单:你还得处理ZIP编码的其他方面,比如文件布局、块结构和回溯引用等等,但我想这可能不会太复杂。)
补充:另外,直接使用zipfile
的解决方案可能更合理。
0
你可以一个一个地查看这些压缩文件,使用zipfile模块来读取里面的文件,然后对这些文件运行你的正则表达式,这样就不需要一次性解压所有文件了。
我很确定你不能直接对压缩的数据运行正则表达式,至少这样做没有什么意义。
10
没有什么东西会自动完成你想要的事情。
不过,有一个叫做python zipfile的模块,可以让这个过程变得简单。下面是如何逐行读取文件的示例。
#!/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