Python: flujo tarfile

Me gustaría leer algunos archivos de un archivo comprimido y guardarlo en un archivo nuevo. Este es el código que escribí.

archive = 'dum/2164/archive.tar' # Read input data. input_tar = tarfile.open(archive, 'r|') tarinfo = input_tar.next() input_tar.close() # Write output file. output_tar = tarfile.open('foo.tar', 'w|') output_tar.addfile(tarinfo) output_tar.close() 

Desafortunadamente, el tarball de salida no es bueno:

 $ tar tf foo.tar ./1QZP_A--2JED_A--not_reformatted.dat.bz2 tar: Truncated input file (needed 1548288 bytes, only 1545728 available) tar: Error exit delayed from previous errors. 

¿Alguna pista de cómo leer y escribir archivos comprimidos sobre la marcha con Python?

De acuerdo, así es como logré hacerlo.

 archive = 'dum/2164/archive.tar' # Read input data. input_tar = tarfile.open(archive, 'r|') tarinfo = input_tar.next() fileobj = input_tar.extractfile(tarinfo) # Write output file. output_tar = tarfile.open('foo.tar', 'w|') output_tar.addfile(tarinfo, fileobj) input_tar.close() output_tar.close()