En Wed, 19 Nov 2008 13:25:03 -0200, Barak, Ron <[EMAIL PROTECTED]>
escribió:
I need to read a file that is either a gzip or a text file (on both *nix
and Windows).
Since I didn't find a way to determine a file type, I thought of using
the following:
import gzip
FILE = "../dpm/save_state-ssp8400-F0023209_080723-110131/top.1"
#FILE =
"../dpm/save_state-ssp8400-F0023209_080723-110131/var/log/sac.log.0.gz"
try:
file = gzip.GzipFile(FILE, "r")
except IOError:
file = open(FILE, "r")
print file.read()
Strangely, when FILE is a gzip file, all is fine.
But, when FILE is a text file (as in the above code), I get the
following:
$ python ./gzip_try.py
Traceback (most recent call last):
File "./gzip_try.py", line 11, in <module>
print file.read() <<<===================
File "c:\Python25\lib\gzip.py", line 220, in read
self._read(readsize)
File "c:\Python25\lib\gzip.py", line 263, in _read
self._read_gzip_header()
File "c:\Python25\lib\gzip.py", line 164, in _read_gzip_header
raise IOError, 'Not a gzipped file'
IOError: Not a gzipped file
Can you explain why the try...except in my code does not work ?
Or, back to my original problem: how do I deal with a file whether it's
a text file or a gzip file ?
Note *where* the exception is raised. Until something is actually read, no
check is made for the file format.
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list