我〜1GB * .tbz的文件。在每個文件裏面都有一個〜9GB的文件。我只需要讀取這個文件的頭部,前1024個字節。閱讀裏面tar文件大文件頭(〜9GB)不足額提取
我想,因爲我有數百個這樣的文件1GB我要處理這個要做到這一點儘可能快。它需要大約1分30秒的時間來提取。
我試着用足額提取:
tar = tarfile.open(fn, mode='r|bz2')
for item in tar:
tar.extract(item)
和tarfile.getmembers()
但沒有速度imprevement:
tar = tarfile.open(fn, mode='r|bz2')
for member in tar.getmembers():
f = tar.extractfile(member)
headerbytes = f.read(1024)
headerdict = parseHeader(headerbytes)
的getmembers()
方法是什麼把所有的時間在那裏。
有什麼辦法,我可以這樣做呢?
你能展示一個你需要解析的樣本頭嗎? –
你可以使用[BZ2File](https://docs.python.org/2/library/bz2.html#bz2.BZ2File)來讀出一個塊嗎?也許你可以完全跳過'tar'部分。 – bbayles
謝謝!這工作!你想發佈一個完整的答案? f = bz2.BZ2File(fn); f.seek(512); headerbytes = f.read(1024); headerdict = parseHeader(headerbytes) – roho