TAR reúne arquivos e metadados em um fluxo; gzip ou outra camada pode comprimi-lo. tarfile combina essas etapas com modos como w:gz e permite consultar os membros antes de gravá-los no disco.

Exemplo prático

from pathlib import Path
import tarfile

Path("data").mkdir(exist_ok=True)
Path("data/result.txt").write_text("ok", encoding="utf-8")

with tarfile.open("backup.tar.gz", "w:gz") as archive:
    archive.add("data", arcname="data")

with tarfile.open("backup.tar.gz", "r:gz") as archive:
    print(archive.getnames())

TAR não é ZIP

TAR é comum em backups e distribuição Unix, enquanto ZIP costuma ter interoperabilidade maior no desktop. Use arcname para controlar a estrutura e evite armazenar a árvore absoluta da origem.

Não extraia cegamente

Arquivos TAR podem conter caminhos ascendentes, links e tipos especiais. Em versões compatíveis, use o filtro de dados na extração e ainda imponha uma pasta isolada, limites de tamanho e política para links. Para apenas ler dados, prefira extractfile() sem materializar toda a árvore.

Continue estudando

Leia também zipfile em Python: crie e leia arquivos ZIP e Pathlib Python: Guia Completo para Manipular Arquivos. A documentação oficial do Python, consultada em 22 de julho de 2026, detalha a API e o comportamento entre versões.