在tarfile中读取大文件头(~9GB)而不进行完全提取

时间:2015-11-23 15:15:37

标签: python large-files bzip2 tarfile

我有〜1GB * .tbz文件。在每个文件中都有一个~9GB的文件。我只需要读取这个文件的标题,前1024个字节。

我希望这样做尽可能快,因为我要处理数百个这样的1GB文件。提取大约需要1分30秒。

我尝试使用完全提取:

tar = tarfile.open(fn, mode='r|bz2')
for item in tar:
    tar.extract(item)

tarfile.getmembers()但没有速度提升:

tar = tarfile.open(fn, mode='r|bz2')
for member in tar.getmembers():
    f = tar.extractfile(member)
    headerbytes = f.read(1024)
    headerdict = parseHeader(headerbytes)

getmembers()方法一直在那里进行。

我有什么办法吗?

0 个答案:

没有答案