From ab99475b6621b7ea0fc01056e9595c9706136492 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Mon, 16 Apr 2018 07:21:57 -0700 Subject: [PATCH] Remove to-be-deprecated urllib.request.urlretrieve function reference (GH-6454) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit (cherry picked from commit c89b22175807d64c47b598163b804b5dc005d1bb) Co-authored-by: Andrés Delfino <34587441+andresdelfino@users.noreply.github.com> --- Doc/howto/urllib2.rst | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst index edf0abd5c5..8b93d70186 100644 --- a/Doc/howto/urllib2.rst +++ b/Doc/howto/urllib2.rst @@ -56,12 +56,20 @@ The simplest way to use urllib.request is as follows:: with urllib.request.urlopen('http://python.org/') as response: html = response.read() -If you wish to retrieve a resource via URL and store it in a temporary location, -you can do so via the :func:`~urllib.request.urlretrieve` function:: +If you wish to retrieve a resource via URL and store it in a temporary +location, you can do so via the :func:`shutil.copyfileobj` and +:func:`tempfile.NamedTemporaryFile` functions:: + import shutil + import tempfile import urllib.request - local_filename, headers = urllib.request.urlretrieve('http://python.org/') - html = open(local_filename) + + with urllib.request.urlopen('http://python.org/') as response: + with tempfile.NamedTemporaryFile(delete=False) as tmp_file: + shutil.copyfileobj(response, tmp_file) + + with open(tmp_file.name) as html: + pass Many uses of urllib will be that simple (note that instead of an 'http:' URL we could have used a URL starting with 'ftp:', 'file:', etc.). However, it's the -- 2.50.1