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.