Python Glossary English

все 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Сообщить о неточности