blob: 4bc7d80c2c91f35e8ec5afedd03f538a365f299e [file] [log] [blame]
Fred Drake3a0351c1998-04-04 07:23:21 +00001\section{Standard Module \module{gzip}}
Fred Drakeb91e9341998-07-23 17:59:49 +00002\declaremodule{standard}{gzip}
3
Fred Drakeee7fd691998-07-27 22:30:15 +00004\modulesynopsis{Interfaces for \program{gzip} compression and
5decompression using file objects.}
Fred Drakeb91e9341998-07-23 17:59:49 +00006
Guido van Rossum41884a91997-07-17 16:26:11 +00007
8The data compression provided by the \code{zlib} module is compatible
Fred Drakeb30d0161998-03-10 05:41:08 +00009with that used by the GNU compression program \program{gzip}.
10Accordingly, the \module{gzip} module provides the \class{GzipFile}
11class to read and write \program{gzip}-format files, automatically
12compressing or decompressing the data so it looks like an ordinary
13file object.
Guido van Rossum41884a91997-07-17 16:26:11 +000014
Guido van Rossum7bda89f1998-07-06 20:47:40 +000015The module defines the following items:
Guido van Rossum41884a91997-07-17 16:26:11 +000016
Guido van Rossum7bda89f1998-07-06 20:47:40 +000017\begin{classdesc}{GzipFile}{\optional{filename\optional{, mode\optional{,
18 compresslevel\optional{, fileobj}}}}}
19Constructor for the \class{GzipFile} class, which simulates most of
20the methods of a file object, with the exception of the
21\method{seek()} and \method{tell()} methods. At least one of
22\var{fileobj} and \var{filename} must be given a non-trivial value.
Fred Drakeb30d0161998-03-10 05:41:08 +000023
Guido van Rossum7bda89f1998-07-06 20:47:40 +000024The new class instance is based on \var{fileobj}, which can be a
25regular file, a \class{StringIO} object, or any other object which
26simulates a file. It defaults to \code{None}, in which case
27\var{filename} is opened to provide a file object.
Guido van Rossum41884a91997-07-17 16:26:11 +000028
Guido van Rossum7bda89f1998-07-06 20:47:40 +000029When \var{fileobj} is not \code{None}, the \var{filename} argument is
30only used to be included in the \program{gzip} file header, which may
31includes the original filename of the uncompressed file. It defaults
32to the filename of \var{fileobj}, if discernible; otherwise, it
33defaults to the empty string, and in this case the original filename
34is not included in the header.
Guido van Rossum41884a91997-07-17 16:26:11 +000035
Guido van Rossum7bda89f1998-07-06 20:47:40 +000036The \var{mode} argument can be either \code{'r'} or \code{'w'},
37depending on whether the file will be read or written. The default is
38the mode of \var{fileobj} if discernible; otherwise, the default is
39\code{'r'}.
Guido van Rossum41884a91997-07-17 16:26:11 +000040
Guido van Rossum7bda89f1998-07-06 20:47:40 +000041The \var{compresslevel} argument is an integer from \code{1} to
42\code{9} controlling the level of compression; \code{1} is fastest and
43produces the least compression, and \code{9} is slowest and produces
44the most compression. The default is \code{9}.
45
46Calling a \class{GzipFile} object's \method{close()} method does not
47close \var{fileobj}, since you might wish to append more material
48after the compressed data. This also allows you to pass a
49\class{StringIO} object opened for writing as \var{fileobj}, and
50retrieve the resulting memory buffer using the \class{StringIO}
51object's \method{getvalue()} method.
52\end{classdesc}
53
54\begin{funcdesc}{open}{filename\optional{, mode\optional{, compresslevel}}}
55This is a shorthand for \code{GzipFile(\var{filename},}
56\code{\var{mode},} \code{\var{compresslevel})}. The \var{filename}
57argument is required; \var{mode} defaults to \code{'r'} and
58\var{compresslevel} defaults to \code{9}.
Guido van Rossum41884a91997-07-17 16:26:11 +000059\end{funcdesc}
60
61\begin{seealso}
62\seemodule{zlib}{the basic data compression module}
63\end{seealso}