| Fred Drake | 295da24 | 1998-08-10 19:42:37 +0000 | [diff] [blame] | 1 | \section{\module{gzip} --- | 
| Fred Drake | bbac432 | 1999-02-20 00:14:17 +0000 | [diff] [blame] | 2 | Support for \program{gzip} files} | 
| Fred Drake | b91e934 | 1998-07-23 17:59:49 +0000 | [diff] [blame] | 3 |  | 
| Fred Drake | bbac432 | 1999-02-20 00:14:17 +0000 | [diff] [blame] | 4 | \declaremodule{standard}{gzip} | 
| Fred Drake | ee7fd69 | 1998-07-27 22:30:15 +0000 | [diff] [blame] | 5 | \modulesynopsis{Interfaces for \program{gzip} compression and | 
|  | 6 | decompression using file objects.} | 
| Fred Drake | b91e934 | 1998-07-23 17:59:49 +0000 | [diff] [blame] | 7 |  | 
| Guido van Rossum | 41884a9 | 1997-07-17 16:26:11 +0000 | [diff] [blame] | 8 |  | 
|  | 9 | The data compression provided by the \code{zlib} module is compatible | 
| Fred Drake | b30d016 | 1998-03-10 05:41:08 +0000 | [diff] [blame] | 10 | with that used by the GNU compression program \program{gzip}. | 
|  | 11 | Accordingly, the \module{gzip} module provides the \class{GzipFile} | 
|  | 12 | class to read and write \program{gzip}-format files, automatically | 
|  | 13 | compressing or decompressing the data so it looks like an ordinary | 
| Fred Drake | 1dc3a50 | 1999-04-05 19:00:54 +0000 | [diff] [blame] | 14 | file object.  Note that additional file formats which can be | 
|  | 15 | decompressed by the \program{gzip} and \program{gunzip} programs, such | 
|  | 16 | as those produced by \program{compress} and \program{pack}, are not | 
|  | 17 | supported by this module. | 
| Guido van Rossum | 41884a9 | 1997-07-17 16:26:11 +0000 | [diff] [blame] | 18 |  | 
| Guido van Rossum | 7bda89f | 1998-07-06 20:47:40 +0000 | [diff] [blame] | 19 | The module defines the following items: | 
| Guido van Rossum | 41884a9 | 1997-07-17 16:26:11 +0000 | [diff] [blame] | 20 |  | 
| Guido van Rossum | 7bda89f | 1998-07-06 20:47:40 +0000 | [diff] [blame] | 21 | \begin{classdesc}{GzipFile}{\optional{filename\optional{, mode\optional{, | 
|  | 22 | compresslevel\optional{, fileobj}}}}} | 
|  | 23 | Constructor for the \class{GzipFile} class, which simulates most of | 
| Guido van Rossum | 97c5fcc | 2002-08-06 17:03:25 +0000 | [diff] [blame] | 24 | the methods of a file object, with the exception of the \method{readinto()} | 
|  | 25 | and \method{truncate()} methods.  At least one of | 
| Guido van Rossum | 7bda89f | 1998-07-06 20:47:40 +0000 | [diff] [blame] | 26 | \var{fileobj} and \var{filename} must be given a non-trivial value. | 
| Fred Drake | b30d016 | 1998-03-10 05:41:08 +0000 | [diff] [blame] | 27 |  | 
| Guido van Rossum | 7bda89f | 1998-07-06 20:47:40 +0000 | [diff] [blame] | 28 | The new class instance is based on \var{fileobj}, which can be a | 
|  | 29 | regular file, a \class{StringIO} object, or any other object which | 
|  | 30 | simulates a file.  It defaults to \code{None}, in which case | 
|  | 31 | \var{filename} is opened to provide a file object. | 
| Guido van Rossum | 41884a9 | 1997-07-17 16:26:11 +0000 | [diff] [blame] | 32 |  | 
| Guido van Rossum | 7bda89f | 1998-07-06 20:47:40 +0000 | [diff] [blame] | 33 | When \var{fileobj} is not \code{None}, the \var{filename} argument is | 
|  | 34 | only used to be included in the \program{gzip} file header, which may | 
|  | 35 | includes the original filename of the uncompressed file.  It defaults | 
|  | 36 | to the filename of \var{fileobj}, if discernible; otherwise, it | 
|  | 37 | defaults to the empty string, and in this case the original filename | 
|  | 38 | is not included in the header. | 
| Guido van Rossum | 41884a9 | 1997-07-17 16:26:11 +0000 | [diff] [blame] | 39 |  | 
| Fred Drake | 1dc3a50 | 1999-04-05 19:00:54 +0000 | [diff] [blame] | 40 | The \var{mode} argument can be any of \code{'r'}, \code{'rb'}, | 
|  | 41 | \code{'a'}, \code{'ab'}, \code{'w'}, or \code{'wb'}, depending on | 
|  | 42 | whether the file will be read or written.  The default is the mode of | 
|  | 43 | \var{fileobj} if discernible; otherwise, the default is \code{'rb'}. | 
| Skip Montanaro | de994d9 | 2002-08-02 17:20:46 +0000 | [diff] [blame] | 44 | If not given, the 'b' flag will be added to the mode to ensure the | 
|  | 45 | file is opened in binary mode for cross-platform portability. | 
| Guido van Rossum | 41884a9 | 1997-07-17 16:26:11 +0000 | [diff] [blame] | 46 |  | 
| Guido van Rossum | 7bda89f | 1998-07-06 20:47:40 +0000 | [diff] [blame] | 47 | The \var{compresslevel} argument is an integer from \code{1} to | 
|  | 48 | \code{9} controlling the level of compression; \code{1} is fastest and | 
|  | 49 | produces the least compression, and \code{9} is slowest and produces | 
|  | 50 | the most compression.  The default is \code{9}. | 
|  | 51 |  | 
|  | 52 | Calling a \class{GzipFile} object's \method{close()} method does not | 
|  | 53 | close \var{fileobj}, since you might wish to append more material | 
|  | 54 | after the compressed data.  This also allows you to pass a | 
|  | 55 | \class{StringIO} object opened for writing as \var{fileobj}, and | 
|  | 56 | retrieve the resulting memory buffer using the \class{StringIO} | 
|  | 57 | object's \method{getvalue()} method. | 
|  | 58 | \end{classdesc} | 
|  | 59 |  | 
|  | 60 | \begin{funcdesc}{open}{filename\optional{, mode\optional{, compresslevel}}} | 
|  | 61 | This is a shorthand for \code{GzipFile(\var{filename},} | 
|  | 62 | \code{\var{mode},} \code{\var{compresslevel})}.  The \var{filename} | 
| Fred Drake | 1dc3a50 | 1999-04-05 19:00:54 +0000 | [diff] [blame] | 63 | argument is required; \var{mode} defaults to \code{'rb'} and | 
| Guido van Rossum | 7bda89f | 1998-07-06 20:47:40 +0000 | [diff] [blame] | 64 | \var{compresslevel} defaults to \code{9}. | 
| Guido van Rossum | 41884a9 | 1997-07-17 16:26:11 +0000 | [diff] [blame] | 65 | \end{funcdesc} | 
|  | 66 |  | 
|  | 67 | \begin{seealso} | 
| Fred Drake | ba0a989 | 2000-10-18 17:43:06 +0000 | [diff] [blame] | 68 | \seemodule{zlib}{The basic data compression module needed to support | 
|  | 69 | the \program{gzip} file format.} | 
| Guido van Rossum | 41884a9 | 1997-07-17 16:26:11 +0000 | [diff] [blame] | 70 | \end{seealso} |