从python中的大(40GB)tar文件中一次访问一个文件

问题描述 投票:-1回答:1

我正在尝试在python中访问大型tarball(tar.gz)。压缩包包含多个mp3wav文件。我想分别读取每个文件并进行我想做的处理。

我确实查看了此处提供的一些建议:thisthis

两种解决方案都提供读取目录的功能,但不能一次访问/读取每个文件。我见过的其他解决方案是提取整个tarball-我的磁盘上没有太多空间了。

在这方面的任何帮助将不胜感激。

python tar
1个回答
0
投票

您可以使用TarFile.extractfile在存档中的每个文件上获取缓冲的读取器,而无需解压缩其他文件。

import tarfile

with tarfile.open("test.tar.gz") as archive:
    for member in archive:
        file_obj = archive.extractfile(member)
        print(file_obj)
© www.soinside.com 2019 - 2024. All rights reserved.