From: Andrés Delfino <34587441+andresdelfino@users.noreply.github.com> Date: Mon, 16 Apr 2018 14:02:56 +0000 (-0300) Subject: Remove to-be-deprecated urllib.request.urlretrieve function reference (#6454) X-Git-Tag: v3.8.0a1~1962 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c89b22175807d64c47b598163b804b5dc005d1bb;p=python Remove to-be-deprecated urllib.request.urlretrieve function reference (#6454) --- diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst index 204a05a610..ef1791cebe 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