mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00

svn+ssh://pythondev@svn.python.org/python/trunk ........ r61981 | amaury.forgeotdarc | 2008-03-28 01:21:34 +0100 (Fri, 28 Mar 2008) | 2 lines test_future3.py is a regular test file, and should be part of the test suite ........ r61984 | jeffrey.yasskin | 2008-03-28 05:11:18 +0100 (Fri, 28 Mar 2008) | 6 lines Kill a race in test_threading in which the exception info in a thread finishing up after it was joined had a traceback pointing to that thread's (deleted) target attribute, while the test was trying to check that the target was destroyed. Big thanks to Antoine Pitrou for diagnosing the race and pointing out sys.exc_clear() to kill the exception early. This fixes issue 2496. ........ r61985 | neal.norwitz | 2008-03-28 05:41:34 +0100 (Fri, 28 Mar 2008) | 1 line Allow use of other ports so the test can pass if 9091 is in use ........ r61986 | jeffrey.yasskin | 2008-03-28 05:53:10 +0100 (Fri, 28 Mar 2008) | 2 lines Print more information the next time test_socket throws the wrong exception. ........ r61987 | neal.norwitz | 2008-03-28 05:58:51 +0100 (Fri, 28 Mar 2008) | 5 lines Revert r61969 which added casts to Py_CHARMASK to avoid compiler warnings. Rather than sprinkle casts throughout the code, change Py_CHARMASK to always cast it's result to an unsigned char. This should ensure we do the right thing when accessing an array with the result. ........ r61992 | neal.norwitz | 2008-03-28 06:34:59 +0100 (Fri, 28 Mar 2008) | 2 lines Fix compiler warning about finite() missing on Solaris. ........ r61993 | neal.norwitz | 2008-03-28 07:34:03 +0100 (Fri, 28 Mar 2008) | 11 lines Bug 1503: Get the test to pass on OSX. This should make the test more reliable, but I'm not convinced it is the right solution. We need to determine if this causes the test to hang on any platforms or do other bad things. Even if it gets the test to pass reliably, it might be that we want to fix this in socket. The socket returned from accept() is different on different platforms (inheriting attributes or not) and we might want to ensure that the attributes (at least blocking) is the same across all platforms. ........ r61997 | neal.norwitz | 2008-03-28 08:36:31 +0100 (Fri, 28 Mar 2008) | 1 line Name the main method correctly so the test is run ........ r61998 | gregory.p.smith | 2008-03-28 09:00:44 +0100 (Fri, 28 Mar 2008) | 7 lines This patch moves some tests from test_urllib2_net to test_urllib2_localnet. The moved tests use a local server rather than going out to external servers. Accepts patch from issue2429. Contributed by Jerry Seutter & Michael Foord (fuzzyman) at PyCon 2008. ........ r61999 | georg.brandl | 2008-03-28 09:06:56 +0100 (Fri, 28 Mar 2008) | 2 lines #2406: add examples to gzip docs. ........ r62000 | gregory.p.smith | 2008-03-28 09:32:09 +0100 (Fri, 28 Mar 2008) | 4 lines Accept patch issue2426 by Paul Kippes (kippesp). Adds sqlite3.Connection.iterdump to allow dumping of databases. ........
104 lines
3.9 KiB
ReStructuredText
104 lines
3.9 KiB
ReStructuredText
:mod:`gzip` --- Support for :program:`gzip` files
|
|
=================================================
|
|
|
|
.. module:: gzip
|
|
:synopsis: Interfaces for gzip compression and decompression using file objects.
|
|
|
|
This module provides a simple interface to compress and decompress files just
|
|
like the GNU programs :program:`gzip` and :program:`gunzip` would.
|
|
|
|
The data compression is provided by the :mod:``zlib`` module.
|
|
|
|
The :mod:`gzip` module provides the :class:`GzipFile` class which is modeled
|
|
after Python's File Object. The :class:`GzipFile` class reads and writes
|
|
:program:`gzip`\ -format files, automatically compressing or decompressing the
|
|
data so that it looks like an ordinary file object.
|
|
|
|
Note that additional file formats which can be decompressed by the
|
|
:program:`gzip` and :program:`gunzip` programs, such as those produced by
|
|
:program:`compress` and :program:`pack`, are not supported by this module.
|
|
|
|
For other archive formats, see the :mod:`bz2`, :mod:`zipfile`, and
|
|
:mod:`tarfile` modules.
|
|
|
|
The module defines the following items:
|
|
|
|
|
|
.. class:: GzipFile([filename[, mode[, compresslevel[, fileobj]]]])
|
|
|
|
Constructor for the :class:`GzipFile` class, which simulates most of the methods
|
|
of a file object, with the exception of the :meth:`readinto` and
|
|
:meth:`truncate` methods. At least one of *fileobj* and *filename* must be
|
|
given a non-trivial value.
|
|
|
|
The new class instance is based on *fileobj*, which can be a regular file, a
|
|
:class:`StringIO` object, or any other object which simulates a file. It
|
|
defaults to ``None``, in which case *filename* is opened to provide a file
|
|
object.
|
|
|
|
When *fileobj* is not ``None``, the *filename* argument is only used to be
|
|
included in the :program:`gzip` file header, which may includes the original
|
|
filename of the uncompressed file. It defaults to the filename of *fileobj*, if
|
|
discernible; otherwise, it defaults to the empty string, and in this case the
|
|
original filename is not included in the header.
|
|
|
|
The *mode* argument can be any of ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, ``'w'``,
|
|
or ``'wb'``, depending on whether the file will be read or written. The default
|
|
is the mode of *fileobj* if discernible; otherwise, the default is ``'rb'``. If
|
|
not given, the 'b' flag will be added to the mode to ensure the file is opened
|
|
in binary mode for cross-platform portability.
|
|
|
|
The *compresslevel* argument is an integer from ``1`` to ``9`` controlling the
|
|
level of compression; ``1`` is fastest and produces the least compression, and
|
|
``9`` is slowest and produces the most compression. The default is ``9``.
|
|
|
|
Calling a :class:`GzipFile` object's :meth:`close` method does not close
|
|
*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 *fileobj*, and retrieve the resulting memory buffer using the
|
|
:class:`StringIO` object's :meth:`getvalue` method.
|
|
|
|
|
|
.. function:: open(filename[, mode[, compresslevel]])
|
|
|
|
This is a shorthand for ``GzipFile(filename,`` ``mode,`` ``compresslevel)``.
|
|
The *filename* argument is required; *mode* defaults to ``'rb'`` and
|
|
*compresslevel* defaults to ``9``.
|
|
|
|
|
|
.. _gzip-usage-examples:
|
|
|
|
Examples of usage
|
|
-----------------
|
|
|
|
Example of how to read a compressed file::
|
|
|
|
import gzip
|
|
f = gzip.open('/home/joe/file.txt.gz', 'rb')
|
|
file_content = f.read()
|
|
f.close()
|
|
|
|
Example of how to create a compressed GZIP file::
|
|
|
|
import gzip
|
|
content = "Lots of content here"
|
|
f = gzip.open('/home/joe/file.txt.gz', 'wb')
|
|
f.write(content)
|
|
f.close()
|
|
|
|
Example of how to GZIP compress an existing file::
|
|
|
|
import gzip
|
|
f_in = open('/home/joe/file.txt', 'rb')
|
|
f_out = gzip.open('/home/joe/file.txt.gz', 'wb')
|
|
f_out.writelines(f_in)
|
|
f_out.close()
|
|
f_in.close()
|
|
|
|
|
|
.. seealso::
|
|
|
|
Module :mod:`zlib`
|
|
The basic data compression module needed to support the :program:`gzip` file
|
|
format.
|
|
|