いちいちファイルに書き出したくないときに使えるテクニック。デフォルトで用意されているモジュールtarfileを用います。
import tarfile
with tarfile.open("archive.tar.xz", mode="r:xz") as tar:
for tarinfo in tar:
if(tarinfo.isreg()):
#bytesで格納
binary = tar.extractfile(tarinfo).readline()
#文字列に変換
str = binary.decode("utf-8")
print(str)
tar.extractfileの返り値がExFileObjectなので、readline()等でbytesに変換するのがポイント。そのあと文字列で使いたければデコードします。
訂正&補足:
この例だと1行しか読み取れません。1ファイル内に改行が含まれる場合は例えば、以下のようにします。
binary = b''.join(tar.extractfile(tarinfo).readlines())