tar.gzファイルから1つのファイルだけを読み取ろうとしています。tarfileオブジェクトに対するすべての操作は正常に機能しますが、具象メンバーから読み取ると、常にStreamErrorが発生します。次のコードを確認してください。
import tarfile
fd = tarfile.open('file.tar.gz', 'r|gz')
for member in fd.getmembers():
if not member.isfile():
continue
cfile = fd.extractfile(member)
print cfile.read()
cfile.close()
fd.close()
cfile.read()は常に「tarfile.StreamError:後方シークは許可されていません」を引き起こします
ファイルにダンプするのではなく、コンテンツをmemに読み取る必要があります(extractallは正常に機能します)
ありがとうございました!