我的日志文件具有以下結(jié)構(gòu):/var/log/2013-12-24.tar.gz該文件具有:2013-12-24/{00,01,02...23}.log.gz檔案我需要使用Python解析這些文件,無需提取磁盤或內(nèi)存上的任何文件有什么建議 ?
2 回答

胡子哥哥
TA貢獻1825條經(jīng)驗 獲得超6個贊
使用,這是不可能的.tar.gz
,這就是原因。
為了創(chuàng)建.tar.gz
文件,您必須tar
先創(chuàng)建單個.tar
文件,然后再創(chuàng)建gzip
結(jié)果。
.tar
可以在不讀取整個內(nèi)容的情況下掃描文件,但只有在tar
歸檔成員相對較大的情況下,它才能很好地工作。這是因為tar
沒有任何標頭在一個緊湊的位置列出所有成員。每個存檔成員都有512字節(jié)的描述符,比顯示下一個描述符的位置還要多。使用大型歸檔成員,您可以相對快速地在磁盤上找到任意成員的內(nèi)容,但是您將不得不lseek()
多次。
但是,一旦您gzip
在上進行了應(yīng)用.tar
,從根本上來說,就不可能迅速獲得存檔中所有成員的列表,而實際上無法解壓縮其內(nèi)容的可能性就大大降低了。您甚至不得不解壓縮整個存檔,甚至只是簡單地獲取其所有成員的列表。
請注意,流行.tar.bz2
或.tar.xz
格式存在完全相同的問題。
您可以使用zip
格式對其進行修復(fù)。zip
之所以具有.tar.gz
更大的優(yōu)勢,是因為它確實具有緊湊的索引,該索引在一個位置列出了所有存檔成員,并且它允許快速讀取該列表并僅提取您需要的文件,而不必提?。▔嚎s).tar.gz
遭受苦難的整個存檔。
添加回答
舉報
0/150
提交
取消