相关疑难解决方法(0)

可以将python中的bz2解压到文件而不是内存中

我曾使用库在内存中解压和读取文件bz2。但是,我已通读文档,似乎不能只是简单地解压缩文件,以在文件系统上使用解压缩的数据创建一个全新的文件,而无需内存存储。当然,您可以使用 BZ2Decompressor 逐行读取,然后将其写入文件,但这会非常慢。(解压海量文件,50GB+)。是否有一些我忽略的方法或库可以实现与bz2 -d myfile.ext.bz2python 中的终端命令相同的功能,而无需使用涉及子进程的 hacky 解决方案来调用该终端命令?

bz2 如此慢的示例:

通过 bz2 -d 解压该文件:104秒

对解压文件的分析(仅涉及逐行读取):183秒

with open(file_src) as x:
    for l in x:
Run Code Online (Sandbox Code Playgroud)

解压文件并使用分析:超过 600 秒(此时间最大应为 104+183)

if file_src.endswith(".bz2"):
    bz_file = bz2.BZ2File(file_src)
    for l in bz_file:
Run Code Online (Sandbox Code Playgroud)

python compression

4
推荐指数
1
解决办法
4228
查看次数

标签 统计

compression ×1

python ×1