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.
GzipFile objects simulate most of the methods of a file object, though it's not possible to use the seek() and tell() methods to access the file randomly.
The gzip file format includes the original filename of the uncompressed file; when opening a GzipFile object for writing, it can be set by the filename argument. The default value is an empty string.
mode can be either 'r' or 'w' depending on whether the file will be read or written. compresslevel 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 value of compresslevel 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.
Module zlib (the basic data compression module)