~1GB の *.tbz ファイルがあります。これらの各ファイル内には、最大 9 GB のファイルが 1 つあります。このファイルのヘッダー、つまり最初の 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()
メソッドは、そこに常に時間がかかっているものです。
これにできる方法はありますか?