I have been working for a long time with .bz2
files. To unpack/decompress .bz2
files into a specific folder I have been using the following function:
destination_folder = 'unpacked/'
def decompress_bz2_to_folder(input_file):
unpackedfile = bz2.BZ2File(input_file)
data = unpackedfile.read()
open(destination_folder, 'wb').write(data)
Recently I obtained a list of files with the .xz
(not .tar.xz
) and .zst
extensions. My poor research skills told me that the former is lzma2
compression and the latter is Zstandard
.
However, I couldn't find of an easy way to unpack the contents of these archives into a folder (like I do with the .bz2
files).
How can I:
- Unpack the contents of an
.xz
(lzma2
) file into a folder using Python 3? - Unpack the contents of a
.zst
(Zstandard
) file into a folder using Python 3?
Important Note: I'm unpacking very large files, so it would be great if the solution takes into consideration any potential Memory Errors.