Python:读取gzip文件并跳过头信息

Python:读取gzip文件并跳过头信息,python,python-2.7,gzip,Python,Python 2.7,Gzip,我有许多压缩文本文件,我正试图使用glob(首先搜索文件)和gzip模块读取它们。我需要跳过每个文件的标题信息。我可以在每个循环的开头使用一个条件语句来实现这一点。有没有更好的方法可以用来忽略标题信息 我的文件如下: Name :abc_201509220101.txt.gzip Content : FILE_TIME|COL1|COL2|COL3|COL4|COL5|COL6|... 201509201511|1|10|ABC|XXX|AAA|100|... 20150920151

我有许多压缩文本文件,我正试图使用glob(首先搜索文件)和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|...
 ...
我需要跳过标题注释的阅读。欢迎任何更快的方法

代码:

对于glob.glob('/*.gz')中的文件: fh=gzip.open(文件'rb') 对于fh中的线路: 如果行中有“文件时间”: 持续

谢谢,

您可以使用Python的seek()函数。它与C中的fseek()类似。它采用偏移量值并将文件的当前位置设置为偏移量

seek() 重要的要求是您应该知道头的大小(以字节为单位)

file.seek(size_of_header_in_bytes,0)
file.seek(头的大小,以字节为单位,0)如果您知道第一行是您总是想跳过的,那么您可以在循环之前简单地
fh.readline()
。如果您需要检查它实际上是一个标题行,那么根据定义,您需要一个条件行或一些等效行。

请定义“更快”。速度提高1%是否足够好?您可能还想显示您正在使用的代码,以及出现问题的地方。numpy.loadtxt、numpy.genfromtxt或pandas I/O例程可以派上用场;他们通常有一个skipheader关键字。您可能只需要将文件包装在某种gunzip对象中(或者可能有一个I/O例程本身接受Gzip文件)。当我说更快时,我希望避免每次读取文件时使用条件语句。处理标头部分的gzip模块附带的任何属性。希望这是有意义的。为什么gzip模块会关心文件中的第一行?