Aqui está um pequeno extrator de arquivo tar
que modifica os nomes na memória antes de extrair:
#!/usr/bin/python27
import tarfile
def transform(data):
u = data.decode('latin1')
return u.encode('utf8')
tar = tarfile.open('archive.tar')
for m in tar.getmembers():
m.name = transform(m.name)
tar.extractall()
Aviso: ao contrário do GNU tar
, esse extrator não está excluindo /
. Adicione lógica de verificação a este extrator ou verifique cada arquivo tar
antes de extrair com tar -t
.