$ cat git.tar | /usr/bin/python3 foo3.py $ cat git.tar | /usr/bin/python3 foo3.py Traceback (most recent call last): File "foo3.py", line 5, in tar.extractall("tarout") File "/usr/lib/python3.4/tarfile.py", line 1980, in extractall self.extract(tarinfo, path, set_attrs=not tarinfo.isdir()) File "/usr/lib/python3.4/tarfile.py", line 2019, in extract set_attrs=set_attrs) File "/usr/lib/python3.4/tarfile.py", line 2088, in _extract_member self.makefile(tarinfo, targetpath) File "/usr/lib/python3.4/tarfile.py", line 2127, in makefile source.seek(tarinfo.offset_data) File "/usr/lib/python3.4/tarfile.py", line 518, in seek raise StreamError("seeking backwards is not allowed") tarfile.StreamError: seeking backwards is not allowed $ cat zip.tar | /usr/bin/python3 foo3.py $ cat zip.tar | /usr/bin/python3 foo3.py Traceback (most recent call last): File "/usr/lib/python3.4/tarfile.py", line 2177, in makelink os.symlink(tarinfo.linkname, targetpath) FileExistsError: [Errno 17] File exists: 'CHANGES.gz' -> 'tarout/usr/share/doc/zip/changelog.gz' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "foo3.py", line 5, in tar.extractall("tarout") File "/usr/lib/python3.4/tarfile.py", line 1980, in extractall self.extract(tarinfo, path, set_attrs=not tarinfo.isdir()) File "/usr/lib/python3.4/tarfile.py", line 2019, in extract set_attrs=set_attrs) File "/usr/lib/python3.4/tarfile.py", line 2096, in _extract_member self.makelink(tarinfo, targetpath) File "/usr/lib/python3.4/tarfile.py", line 2188, in makelink targetpath) File "/usr/lib/python3.4/tarfile.py", line 2088, in _extract_member self.makefile(tarinfo, targetpath) File "/usr/lib/python3.4/tarfile.py", line 2127, in makefile source.seek(tarinfo.offset_data) File "/usr/lib/python3.4/tarfile.py", line 518, in seek raise StreamError("seeking backwards is not allowed") tarfile.StreamError: seeking backwards is not allowed