| Guido van Rossum | 41884a9 | 1997-07-17 16:26:11 +0000 | [diff] [blame] | 1 | \section{Built-in Module \sectcode{gzip}} | 
|  | 2 | \label{module-gzip} | 
|  | 3 | \bimodindex{gzip} | 
|  | 4 |  | 
|  | 5 | The data compression provided by the \code{zlib} module is compatible | 
|  | 6 | with that used by the GNU compression program \file{gzip}. | 
|  | 7 | Accordingly, the \code{gzip} module provides the \code{GzipFile} class | 
|  | 8 | to read and write \file{gzip}-format files, automatically compressing | 
|  | 9 | or decompressing the data so it looks like an ordinary file object. | 
|  | 10 |  | 
|  | 11 | \code{GzipFile} objects simulate most of the methods of a file | 
|  | 12 | object, though it's not possible to use the \code{seek()} and | 
|  | 13 | \code{tell()} methods to access the file randomly. | 
|  | 14 |  | 
| Fred Drake | 1947991 | 1998-02-13 06:58:54 +0000 | [diff] [blame] | 15 | \setindexsubitem{(in module gzip)} | 
| Guido van Rossum | 41884a9 | 1997-07-17 16:26:11 +0000 | [diff] [blame] | 16 | \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 Rossum | eb0f066 | 1997-12-30 20:38:16 +0000 | [diff] [blame] | 24 | value is an empty string. | 
| Guido van Rossum | 41884a9 | 1997-07-17 16:26:11 +0000 | [diff] [blame] | 25 |  | 
|  | 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 |  |