我有 ~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()
方法是一直在那里花费的时间。
我有什么办法吗?