我想從tar.gz文件中只讀取一個文件。在tar文件對象的所有操作都工作正常,但是當我從具體成員閱讀,總是StreamError升高時,檢查該代碼:從ExFileObject讀取()始終會導致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:逆向查找是不允許的」
我需要閱讀內容負責,不傾倒到文件(extractall正常工作)
謝謝!
有一個原因,傾倒到一個文件將無法正常工作?你可以使用'tempfile.mkdtemp'來創建一個目錄,在那裏解壓,讀取你想要的文件,然後刪除目錄。除非你無法訪問任何可寫的文件系統,或者你已經嘗試過這種方式,並且性能不可接受,否則我想不出任何其他的理由來排除它。 – abarnert
'extractall'到'tmp'目錄 – jmunsch