все Python 3urllib.requestфункция
urllib.request.urlretrieve()
открытие URL
Скачивает объект по URL в локальный файл и возвращает пару (имя файла, заголовки). Унаследована от модуля urllib из Python 2.
Синтаксис
filename, headers = urllib.request.urlretrieve(url, filename=None, reporthook=None)
Документация относит её к «старому интерфейсу», который могут объявить устаревшим, поэтому в новом коде надёжнее urlopen() плюс shutil.copyfileobj(). Без filename данные ложатся во временный файл, который сам не удаляется — его убирает urlcleanup(). Для локального file:// без filename копии нет вовсе: возвращается путь к исходному файлу. Если пришло меньше байт, чем обещал Content-Length, поднимается ContentTooShortError.
Примеры
import pathlib, urllib.request
src = pathlib.Path('src.txt')
src.write_text('data', encoding='utf-8')
name, headers = urllib.request.urlretrieve(src.resolve().as_uri(), 'copy.txt')
print(name, pathlib.Path(name).read_text(encoding='utf-8')) # → copy.txt data
print(headers['Content-length']) # → 4
import os, pathlib, urllib.request
name, _ = urllib.request.urlretrieve('data:,hello')
print(pathlib.Path(name).read_text()) # → hello
urllib.request.urlcleanup()
print(os.path.exists(name)) # → False
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности