【发布时间】:2018-03-02 16:27:36
【问题描述】:
我使用bz2 库在内存中即时解压缩和读取文件。但是,我已经阅读了文档,似乎不能只是简单地解压缩文件以在文件系统上创建一个全新的文件,其中包含解压缩的数据而没有内存存储。当然,您可以使用 BZ2Decompressor 逐行读取,然后将其写入文件,但这会非常慢。 (解压海量文件,50GB+)。是否有一些我忽略的方法或库可以在 python 中实现与终端命令 bz2 -d myfile.ext.bz2 相同的功能,而无需使用涉及子进程的 hacky 解决方案来调用该终端命令?
bz2为什么这么慢的例子:
通过 bz2 -d: 104seconds 解压该文件
解压文件解析(只涉及逐行读取):183秒
with open(file_src) as x:
for l in x:
解压文件并使用分析:超过 600 秒(这个时间应该是最大 104+183)
if file_src.endswith(".bz2"):
bz_file = bz2.BZ2File(file_src)
for l in bz_file:
【问题讨论】:
标签: python compression