\section{Built-in Module \sectcode{gzip}} \label{module-gzip} \bimodindex{gzip} The data compression provided by the \code{zlib} module is compatible with that used by the GNU compression program \file{gzip}. Accordingly, the \code{gzip} module provides the \code{GzipFile} class to read and write \file{gzip}-format files, automatically compressing or decompressing the data so it looks like an ordinary file object. \code{GzipFile} objects simulate most of the methods of a file object, though it's not possible to use the \code{seek()} and \code{tell()} methods to access the file randomly. \renewcommand{\indexsubitem}{(in module gzip)} \begin{funcdesc}{open}{fileobj\optional{\, filename\optional{\, mode\, compresslevel}}} Returns a new \code{GzipFile} object on top of \var{fileobj}, which can be a regular file, a \code{StringIO} object, or any object which simulates a file. The \file{gzip} file format includes the original filename of the uncompressed file; when opening a \code{GzipFile} object for writing, it can be set by the \var{filename} argument. The default value is \code{"GzippedFile"}. \var{mode} can be either \code{'r'} or \code{'w'} depending on whether the file will be read or written. \var{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 \var{compresslevel} is 9. Calling a \code{GzipFile} object's \code{close()} method does not close \var{fileobj}, since you might wish to append more material after the compressed data. This also allows you to pass a \code{StringIO} object opened for writing as \var{fileobj}, and retrieve the resulting memory buffer using the \code{StringIO} object's \code{getvalue()} method. \end{funcdesc} \begin{seealso} \seemodule{zlib}{the basic data compression module} \end{seealso}