Support for `gzip' files
========================
Interfaces for `gzip' compression and decompression using file objects.
The data compression provided by the `zlib' module is compatible with
that used by the GNU compression program `gzip'. Accordingly, the
`gzip' module provides the `GzipFile' class to read and write
`gzip'-format files, automatically compressing or decompressing the
data so it looks like an ordinary file object. Note that additional
file formats which can be decompressed by the `gzip' and `gunzip'
programs, such as those produced by `compress' and `pack', are not
supported by this module.
The module defines the following items:
`GzipFile([filename[, mode[, compresslevel[, fileobj]]]])'
Constructor for the `GzipFile' class, which simulates most of the
methods of a file object, with the exception of the `seek()' and
`tell()' methods. At least one of FILEOBJ and FILENAME must be
given a non-trivial value.
The new class instance is based on FILEOBJ, which can be a regular
file, a `StringIO' object, or any other object which simulates a
file. It defaults to `None', in which case FILENAME is opened to
provide a file object.
When FILEOBJ is not `None', the FILENAME argument is only used to
be included in the `gzip' file header, which may includes the
original filename of the uncompressed file. It defaults to the
filename of FILEOBJ, if discernible; otherwise, it defaults to the
empty string, and in this case the original filename is not
included in the header.
The MODE argument can be any of `'r'', `'rb'', `'a'', `'ab'',
`'w'', or `'wb'', depending on whether the file will be read or
written. The default is the mode of FILEOBJ if discernible;
otherwise, the default is `'rb''. Be aware that only the `'rb'',
`'ab'', and `'wb'' values should be used for cross-platform
portability.
The COMPRESSLEVEL argument is an integer from `1' to `9'
controlling the level of compression; `1' is fastest and produces
the least compression, and `9' is slowest and produces the most
compression. The default is `9'.
Calling a `GzipFile' object's `close()' method does not close
FILEOBJ, since you might wish to append more material after the
compressed data. This also allows you to pass a `StringIO' object
opened for writing as FILEOBJ, and retrieve the resulting memory
buffer using the `StringIO' object's `getvalue()' method.
`open(filename[, mode[, compresslevel]])'
This is a shorthand for `GzipFile(FILENAME,' `MODE,'
`COMPRESSLEVEL)'. The FILENAME argument is required; MODE
defaults to `'rb'' and COMPRESSLEVEL defaults to `9'.
See also:
Note:zlib The basic data compression module needed to support
the `gzip' file format.