在tar文件中获取文件字节偏移量(和长度)的方法 [英] Method to get file byte offsets (and lengths) in tar files
本文介绍了在tar文件中获取文件字节偏移量(和长度)的方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含数百万个文件的大型tar文件。出于效率原因,我不想将文件解压缩到磁盘。
相反,给定一个所需的文件名,我想编写一个脚本(例如,Python)来从tar文件中提取相关的数据块。
有没有一种简单的方法可以创建一个索引,告诉我tar文件中每个文件的起始字节和长度,例如,我可以将其作为索引转储到磁盘中,以便在上述Python脚本中使用?
也许tar命令可以做到这一点,但我在手册页中看不到任何明显的东西。
未压缩TAR。
提前谢谢。
推荐答案
为了让其他有类似用例的人受益(例如,想要建立一个能够对TAR文件进行随机访问的索引),最后我在http://fomori.org/blog/?p=391中改编了一个方便的实用程序,其实质是(在Python语言中):
%1000的检查节省了内存。我相信这会更整洁。fp=open('index.txt','wt') ctr=0 with tarfile.open(tarfname, 'r|') as db: for tarinfo in db: currentseek = tarinfo.offset_data rec = "%d %d %d %s " % (ctr,tarinfo.offset_data, tarinfo.size, tarinfo.name) fp.write(rec) ctr += 1 if ctr % 1000 == 0: db.members = [] fp.close()
这篇关于在tar文件中获取文件字节偏移量(和长度)的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文