Как создать полный сжатый tar-файл с помощью Python?


Как я могу создать .смола.GZ файл со сжатием в Python?

3 68

3 ответа:

построить .tar.gz (Он же .tgz) для всего дерева каталогов:

import tarfile

def make_tarfile(output_filename, source_dir):
    with tarfile.open(output_filename, "w:gz") as tar:
        tar.add(source_dir, arcname=os.path.basename(source_dir))
import tarfile
tar = tarfile.open("sample.tar.gz", "w:gz")
for name in ["file1", "file2", "file3"]:
    tar.add(name)
tar.close()

Если вы хотите создать сжатый файл tar.bz2, просто замените имя расширения файла на ".tar.bz2" и "w:gz" на "w:bz2".

вы называете tarfile.открой С mode='w:gz', Что означает " открыть для сжатой записи gzip."

вы, вероятно, захотите закончить имя файла ( до open) С .tar.gz, но это не влияет на способности сжатия.

кстати, вы обычно получаете лучшее сжатие с режимом 'w:bz2', как tar обычно можно сжимать еще лучше с bzip2 чем он может сжиматься с gzip.