сжать несколько файлов в файл bz2 в python - PullRequest
0 голосов
/ 04 октября 2018

Мне нужно сжать несколько файлов в один файл bz2 в Python.Я пытаюсь найти способ, но не могу найти ответ.Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Это то, для чего нужны тарболлы.Формат tar упаковывает файлы вместе, а затем вы сжимаете результат.Python позволяет легко сделать оба одновременно с модулем tarfile , где передача "mode" в 'w:bz2' открывает новый tar-файл для записи с бесшовным сжатием bz2.Супер-простой пример:

import tarfile

with tarfile.open('mytar.tar.bz2', 'w:bz2') as tar:
    for file in mylistoffiles:
        tar.add(file)

Если вам не нужно много контроля над операцией, shutil.make_archive может быть возможной альтернативой, которая упростит код для сжатия целогодерево каталогов до:

shutil.make_archive('mytar', 'bztar', directory_to_compress)
0 голосов
/ 04 октября 2018

Взгляните на библиотеку Python bz2.Не забудьте зайти в Google и сначала прочитать документы!

https://docs.python.org/2/library/bz2.html#bz2.BZ2Compressor

...