gpt4 book ai didi

python - 在 tar 文件中获取文件字节偏移量(和长度)的方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:07:48 24 4
gpt4 key购买 nike

我有一个包含数百万个文件的大型 tar 文件。出于效率原因,我不想将文件解压到磁盘。

相反,给定一个所需的文件名,我想编写一个脚本,例如Python 从 tar 文件中提取相关数据 block 。

有没有一种简单的方法可以创建一个索引,告诉我 tar 文件中每个文件的起始字节和长度,例如我可以转储到磁盘作为上述 Python 脚本中使用的索引吗?

也许 tar 命令可以做到这一点,但我在手册页中没有看到任何明显的内容。

tar 未压缩。

提前致谢。

最佳答案

为了有类似用例的其他人的利益(即想要构建一个索引以支持对 tar 文件进行随机访问),最后我在 http://fomori.org/blog/?p=391 上修改了一个方便的实用程序其本质是(在 Python 中):

fp=open('index.txt','wt')
ctr=0
with tarfile.open(tarfname, 'r|') as db:
for tarinfo in db:
currentseek = tarinfo.offset_data
rec = "%d\t%d\t%d\t%s\n" % (ctr,tarinfo.offset_data, tarinfo.size, tarinfo.name)
fp.write(rec)
ctr += 1
if ctr % 1000 == 0:
db.members = []
fp.close()

%1000 的检查节省了 RAM。我相信这会更整洁。

关于python - 在 tar 文件中获取文件字节偏移量(和长度)的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43051879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com