\section{Standard Module \module{gzip}}
\label{module-gzip}
\stmodindex{gzip}

The data compression provided by the \code{zlib} module is compatible
with that used by the GNU compression program \program{gzip}.
Accordingly, the \module{gzip} module provides the \class{GzipFile}
class to read and write \program{gzip}-format files, automatically
compressing or decompressing the data so it looks like an ordinary
file object.

\class{GzipFile} objects simulate most of the methods of a file
object, though it's not possible to use the \method{seek()} and
\method{tell()} methods to access the file randomly.
\withsubitem{(class in gzip)}{\ttindex{GzipFile}}


\begin{funcdesc}{open}{fileobj\optional{, filename\optional{,
                       mode\optional{, compresslevel}}}}
  Returns a new \class{GzipFile} object on top of \var{fileobj}, which
  can be a regular file, a \class{StringIO} object, or any object which
  simulates a file.

  The \program{gzip} file format includes the original filename of the
  uncompressed file; when opening a \class{GzipFile} object for
  writing, it can be set by the \var{filename} argument.  The default
  value is an empty string.

  \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 \code{1} to \code{9} controlling the level of
  compression; \code{1} is fastest and produces the least compression,
  and \code{9} is slowest and produces the most compression.  The
  default value of \var{compresslevel} is \code{9}.

  Calling a \class{GzipFile} object's \method{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
  \class{StringIO} object opened for writing as \var{fileobj}, and
  retrieve the resulting memory buffer using the \class{StringIO}
  object's \method{getvalue()} method.
\end{funcdesc}

\begin{seealso}
\seemodule{zlib}{the basic data compression module}
\end{seealso}

