2015-09-22 82 views
-1

我有一些壓縮文本文件,我嘗試使用glob(首先搜索文件)和gzip模塊進行讀取。我需要跳過每個文件的標題信息。我可以在每個循環的開始處使用條件語句來完成此操作。有沒有更好的方法可以用來忽略標題信息。Python:讀取gzip文件並跳過標題信息

我的文件是這樣的:

Name :abc_201509220101.txt.gzip 
Content : 
FILE_TIME|COL1|COL2|COL3|COL4|COL5|COL6|... 
201509201511|1|10|ABC|XXX|AAA|100|... 
201509201512|2|10|ABC|XXX|AAA|100|... 
201509201511|4|10|ABC|XXX|AAA|101|... 
... 

我需要跳過讀標題註釋。歡迎任何更快的方法。

CODE:

在glob.glob文件( '/ * GZ'): FH = gzip.open(文件, 'RB') 用於FH行: 如果 「FILE_TIME」 在行: 繼續

感謝,

+0

請定義「更快」。速度提高1%是否足夠好? – Evert

+1

您可能還想顯示您正在使用的代碼以及您遇到問題的位置。 – Evert

+0

numpy.loadtxt,numpy.genfromtxt或pandas I/O例程可以派上用場;他們經常有一個skipheader關鍵字。您可能只需要將文件包裝成各種類型的gunzip對象(或者可能有一個I/O例程自己接受gzip文件)。 – Evert

回答

0

您可以使用Python的

seek()
功能。它類似於C中的fseek()。它接受一個偏移值並將文件的當前位置設置爲偏移量。

重要的要求是你應該知道標題的大小以字節爲單位。

file.seek(size_of_header_in_bytes,0)
1

如果你知道,第一行是你總是想跳過的東西,那麼你可以在循環之前根本fh.readline()。如果你需要檢查它是否是一個標題行,那麼根據定義你需要一個條件或一些等價的東西。