Hi, 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 ? Thanks, Ron.
-- http://mail.python.org/mailman/listinfo/python-list