Автор оригинала: Pankaj Kumar.
Загрузка файла с URL – очень распространенная задача в сценариях Python. Пример реального качества – это загрузить изображения с веб-сайта в локальную систему, а затем обработать его в нашей программе Python.
В этом руководстве мы узнаем разные способы скачивания файла с URL в Python.
Использование библиотеки запросов для скачивания файла из URL в сценариях Python
Если ваше требование состоит в том, чтобы получить файл с данного URL-адреса, используя запрос HTTP, то модуль запросов Python идеально подходит для вас.
import requests file_url = 'https://www.journaldev.com/wp-content/uploads/2019/08/Python-Tutorial.png' file_object = requests.get(file_url) with open('Python-Tutorial.png', 'wb') as local_file: local_file.write(file_object.content)
Файл будет загружен в том же каталоге, что и скрипт Python. Если вы хотите изменить местоположение каталога, вы можете предоставить полный путь или относительный путь в вызове функций Open ().
Рекомендуемое чтение : Python с выписком
Linux aficionado? Используйте библиотеку Python WGET для скачивания файла с URL
Если вы любите команды Linux и хотите иметь подобный вкус в вашей программе Python, вы можете использовать библиотеку Wget для загрузки файла с URL.
Библиотека WGET Python Wget не является частью установки по умолчанию, поэтому вы можете установить его с помощью диспетчера пакетов PIP.
# pip install wget
Вот программа Python для загрузки файла из URL с помощью библиотеки WGET.
import wget file_url = 'https://www.journaldev.com/wp-content/uploads/2019/08/Python-Tutorial.png' dest_file = '/Users/pankaj/pt.png' wget.download(file_url, dest_file)
Аргумент файла назначения не является обязательным. Если мы не будем предоставлять, то, то файл будет сохранен в том же каталоге, что и сценарий, и имя файла будет таким же, как имя удаленного файла.
Загрузка файла с URL, который перенаправляет
Иногда мы получаем короткие URL-адреса, которые перенаправляют на фактический файл. Метод Get () библиотеки запросов автоматически следует перенаправить и загрузить фактический файл. Если вы посмотрите на реализацию GET (), он устанавливает allow_redirets
Параметр как Правда
Отказ
def get(url, params=None, **kwargs): kwargs.setdefault('allow_redirects', True) return request('get', url, params=params, **kwargs)
Загрузка большого файла из URL в Python
Если файл большой, то не очень хорошая идея получить все контент в одном. Это потребует много памяти и может вызвать ошибку памяти.
Мы можем пройти поток = правда
Чтобы запросить метод get (), чтобы открыть файл поток и загрузить его в куски. Затем мы можем использовать цикл для чтения кусочков и записывать его в локальный файл.
import requests file_url = 'https://www.journaldev.com/wp-content/uploads/2019/08/Python-Tutorial.png' file_stream = requests.get(file_url, stream=True) with open('Python-Tutorial.png', 'wb') as local_file: for data in file_stream: local_file.write(data) print('Done')
Заключение
Очень легко загрузить файл с URL в Python. Модуль запросов идеально подходит для него. Мы также можем указать методы HTTP для загрузки файла.