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

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

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()

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


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

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

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