我用.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
压缩,后者是{
但是,我找不到一个简单的方法将这些归档文件的内容解压到一个文件夹中(就像我对.bz2
文件所做的那样)。在
我怎样才能:
.xz
(lzma2
)文件的内容解压缩到一个文件夹中
Python3?在.zst
(Zstandard
)文件的内容解压到一个文件夹中?在重要提示:我正在解压缩very large files,因此如果解决方案考虑到任何潜在的内存错误。在
可以使用^{} module 对LZMA数据进行解压缩,只需使用该模块打开文件,然后使用^{} 将解压缩的数据高效地复制到输出文件中,而不会遇到内存问题:
Python标准库还不支持Zstandard压缩,您可以使用^{} (由来自Mozilla和Mercurial项目的IndyGreg提供)或^{} ;后者可能太基本了,不能满足您的需要,而{}提供了一个特别适合读取文件的流式API。在
我在这里使用
^{pr2}$zstandard
库是为了从它实现的复制API中获益,它允许您同时解压缩和复制,类似于shutil.copyfileobj()
的工作方式:相关问题 更多 >
编程相关推荐