blob: df99e5deb82dd9cff12b5c1626dad4469bacbee5 [file] [log] [blame]
Guido van Rossum41884a91997-07-17 16:26:11 +00001\section{Built-in Module \sectcode{gzip}}
2\label{module-gzip}
3\bimodindex{gzip}
4
5The data compression provided by the \code{zlib} module is compatible
6with that used by the GNU compression program \file{gzip}.
7Accordingly, the \code{gzip} module provides the \code{GzipFile} class
8to read and write \file{gzip}-format files, automatically compressing
9or decompressing the data so it looks like an ordinary file object.
10
11\code{GzipFile} objects simulate most of the methods of a file
12object, though it's not possible to use the \code{seek()} and
13\code{tell()} methods to access the file randomly.
14
Fred Drake19479911998-02-13 06:58:54 +000015\setindexsubitem{(in module gzip)}
Guido van Rossum41884a91997-07-17 16:26:11 +000016\begin{funcdesc}{open}{fileobj\optional{\, filename\optional{\, mode\, compresslevel}}}
17 Returns a new \code{GzipFile} object on top of \var{fileobj}, which
18 can be a regular file, a \code{StringIO} object, or any object which
19 simulates a file.
20
21 The \file{gzip} file format includes the original filename of the
22 uncompressed file; when opening a \code{GzipFile} object for
23 writing, it can be set by the \var{filename} argument. The default
Guido van Rossumeb0f0661997-12-30 20:38:16 +000024 value is an empty string.
Guido van Rossum41884a91997-07-17 16:26:11 +000025
26 \var{mode} can be either \code{'r'} or \code{'w'} depending on
27 whether the file will be read or written. \var{compresslevel} is an
28 integer from 1 to 9 controlling the level of compression; 1 is
29 fastest and produces the least compression, and 9 is slowest and
30 produces the most compression. The default value of
31 \var{compresslevel} is 9.
32
33 Calling a \code{GzipFile} object's \code{close()} method does not
34 close \var{fileobj}, since you might wish to append more material
35 after the compressed data. This also allows you to pass a
36 \code{StringIO} object opened for writing as \var{fileobj}, and
37 retrieve the resulting memory buffer using the \code{StringIO}
38 object's \code{getvalue()} method.
39\end{funcdesc}
40
41\begin{seealso}
42\seemodule{zlib}{the basic data compression module}
43\end{seealso}
44