In Python 3, versuche ich, Dateien zu lesen, die sie in einem tar.gz-Archiv befindet, ohne das zu Extrahieren (dh ohne die Extraktdateien auf der Festplatte zu schreiben). Ich fand das tarfile Modul, und das ist, was ich geschrieben habe (stark vereinfacht):
tar = tarfile.open('arhivename.tar.gz',encoding='utf-8')
for x in tar.getmembers():
filelikeobject=tar.extractfile(x)
#pass the filelikeobject to a third party function that accepts file-like object that read strings
#the following lines are for debug:
r=filelikeobject.read()
print(type(r).__name__) #prints out 'bytes' - need 'str'
das Problem ist, das tar.extractfile (x) gibt ein Dateiobjekt, die Bytes zurückgibt, wenn lesen () aufrufen. Ich brauche es str mit utf-8-Kodierung zurück