我似乎记得Python gzip模块以前允许您透明地读取非gzip文件。这非常有用,因为它允许读取输入文件,而不管它是否被压缩。你根本不必担心。Python gzip拒绝读取未压缩的文件
现在,我得到一个IOError异常(在Python 2.7.5):
Traceback (most recent call last):
File "tst.py", line 14, in <module>
rec = fd.readline()
File "/sw/lib/python2.7/gzip.py", line 455, in readline
c = self.read(readsize)
File "/sw/lib/python2.7/gzip.py", line 261, in read
self._read(readsize)
File "/sw/lib/python2.7/gzip.py", line 296, in _read
self._read_gzip_header()
File "/sw/lib/python2.7/gzip.py", line 190, in _read_gzip_header
raise IOError, 'Not a gzipped file'
IOError: Not a gzipped file
如果任何人有一个巧妙的方法,我想听到它。是的,我知道如何捕捉这个异常,但是我发现它首先读取一行,然后关闭文件并再次打开,这相当笨拙。
你肯定你记错遍历文件?我无法从2.4的任何版本中获得该行为,并且从[2.0](http://docs.python.org/2.0/lib/module-gzip.html)开始,文档中没有提及此行为!我永远不会希望gzip能够读取未压缩的文件。 – mata
难道你不能只打开文件,将它传递给gzip,捕获异常,然后使用已打开的文件? – Mezgrman
我想理解你的权利。请不要冒犯。你为什么要用gzip打开一个没有抓住的文件?对不起,但对我来说没有意义。请澄清你的问题。 – PSS