diff options
author | Senthil Kumaran <senthil@uthcode.com> | 2012-03-14 02:48:37 (GMT) |
---|---|---|
committer | Senthil Kumaran <senthil@uthcode.com> | 2012-03-14 02:48:37 (GMT) |
commit | 1725feabd0755b55bb228f8d7cc8c447cdaef988 (patch) | |
tree | 4f18cc02811d43fc62ea1e7769b4a8e8d2caf793 /Doc/library/urllib.request.rst | |
parent | e24f96a05973ddbb59d88c03570aef8545c5ef10 (diff) | |
parent | 21c71bac5f684b0ec1665d841d05f91e078c3964 (diff) | |
download | cpython-1725feabd0755b55bb228f8d7cc8c447cdaef988.zip cpython-1725feabd0755b55bb228f8d7cc8c447cdaef988.tar.gz cpython-1725feabd0755b55bb228f8d7cc8c447cdaef988.tar.bz2 |
default: closes Issue12365 - Add an example explaining the context manager use case of urllib.urlopen
Diffstat (limited to 'Doc/library/urllib.request.rst')
-rw-r--r-- | Doc/library/urllib.request.rst | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst index d624f8a..c1bf490 100644 --- a/Doc/library/urllib.request.rst +++ b/Doc/library/urllib.request.rst @@ -46,8 +46,8 @@ The :mod:`urllib.request` module defines the following functions: If neither *cafile* nor *capath* is specified, an HTTPS request will not do any verification of the server's certificate. - This function returns a file-like object with two additional methods from - the :mod:`urllib.response` module + This function returns a file-like object that works as a :term:`context manager`, + with two additional methods from the :mod:`urllib.response` module * :meth:`geturl` --- return the URL of the resource retrieved, commonly used to determine if a redirect was followed @@ -998,8 +998,17 @@ The following W3C document, http://www.w3.org/International/O-charset , lists the various ways in which a (X)HTML or a XML document could have specified its encoding information. -As python.org website uses *utf-8* encoding as specified in it's meta tag, we -will use same for decoding the bytes object. :: +As the python.org website uses *utf-8* encoding as specified in it's meta tag, we +will use the same for decoding the bytes object. :: + + >>> with urllib.request.urlopen('http://www.python.org/') as f: + ... print(f.read(100).decode('utf-8')) + ... + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtm + +It is also possible to achieve the same result without using the +:term:`context manager` approach. :: >>> import urllib.request >>> f = urllib.request.urlopen('http://www.python.org/') @@ -1007,7 +1016,6 @@ will use same for decoding the bytes object. :: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm - In the following example, we are sending a data-stream to the stdin of a CGI and reading the data it returns to us. Note that this example will only work when the Python installation supports SSL. :: |