我的日志文件具有以下结构:/var/log/2013-12-24.tar.gz该文件具有:2013-12-24/{00,01,02...23}.log.gz档案我需要使用Python解析这些文件,无需提取磁盘或内存上的任何文件有什么建议 ?
2 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
使用,这是不可能的.tar.gz
,这就是原因。
为了创建.tar.gz
文件,您必须tar
先创建单个.tar
文件,然后再创建gzip
结果。
.tar
可以在不读取整个内容的情况下扫描文件,但只有在tar
归档成员相对较大的情况下,它才能很好地工作。这是因为tar
没有任何标头在一个紧凑的位置列出所有成员。每个存档成员都有512字节的描述符,比显示下一个描述符的位置还要多。使用大型归档成员,您可以相对快速地在磁盘上找到任意成员的内容,但是您将不得不lseek()
多次。
但是,一旦您gzip
在上进行了应用.tar
,从根本上来说,就不可能迅速获得存档中所有成员的列表,而实际上无法解压缩其内容的可能性就大大降低了。您甚至不得不解压缩整个存档,甚至只是简单地获取其所有成员的列表。
请注意,流行.tar.bz2
或.tar.xz
格式存在完全相同的问题。
您可以使用zip
格式对其进行修复。zip
之所以具有.tar.gz
更大的优势,是因为它确实具有紧凑的索引,该索引在一个位置列出了所有存档成员,并且它允许快速读取该列表并仅提取您需要的文件,而不必提取(压缩).tar.gz
遭受苦难的整个存档。
添加回答
举报
0/150
提交
取消