【发布时间】:2019-03-15 13:59:25
【问题描述】:
我已经使用.bz2 文件工作了很长时间。要将.bz2 文件解压缩/解压缩到特定文件夹中,我一直在使用以下函数:
destination_folder = 'unpacked/'
def decompress_bz2_to_folder(input_file):
unpackedfile = bz2.BZ2File(input_file)
data = unpackedfile.read()
open(destination_folder, 'wb').write(data)
最近我获得了带有.xz(不是.tar.xz)和.zst 扩展名的文件列表。我糟糕的研究技能告诉我,前者是lzma2 压缩,后者是Zstandard。
但是,我找不到将这些档案的内容解压缩到文件夹中的简单方法(就像我对 .bz2 文件所做的那样)。
我该怎么做:
- 将
.xz(lzma2) 文件的内容解压到一个文件夹中 蟒蛇3? - 使用 Python 3 将
.zst(Zstandard) 文件的内容解压到文件夹中?
重要提示:我正在解压very large files,所以如果解决方案考虑到任何潜在的内存错误,那就太好了.
【问题讨论】:
-
zstdcli 可以解压缩.xz和.zst文件,如果使用适当的选项构建的话。这可以通过zstd -vV进行检查。示例:zstd -vV、*** zstd command line interface 64-bits v1.3.2, by Yann Collet ***、*** supports: zstd, zstd legacy v0.4+, gzip, lz4, lzma, xz -
@Cyan 很高兴知道。但是如何在 Python 3 中完成呢? :)
-
通过调用 CLI 作为外部命令行实用程序?如果您必须改用更紧密的集成,您可能对python wrapper 感兴趣。
标签: python python-3.x compression lzma zstandard