Crie tarballs compactados com Python

Aqui está um pequeno item que tenho usado muito recentemente em nossos servidores. Eu o uso principalmente para compactar backups de banco de dados antes de enviá-los para um bucket S3.

# We use this later for looping over and sending archived names.
archives
= []

def compress(source):
target
= "%s.%s" % (source, 'tgz')
with tarfile.open(target, "w:gz") as tgz:
tgz
.add(source, arcname=target)
archives
.appent(target)
tgz
.close()

Simples e direto ao ponto, assim como o código deve ser.