Я новичок в Python, и я изучал вопросы и ответы на этом сайте, чтобы ответить на мой вопрос. Тем не менее, я новичок, и мне трудно понять некоторые из решений. Мне нужно очень простое решение.
Может ли кто-нибудь объяснить мне простое решение «Загрузка файла через http» и «Сохранение его на диск в Windows»?
Я не уверен, как использовать модули shutil и os.
Файл, который я хочу скачать, имеет размер менее 500 МБ и является архивным файлом .gz. Если кто-то может объяснить, как извлечь архив и использовать файлы в нем, это было бы здорово!
Вот частичное решение, которое я написал из различных ответов вместе:
import requests
import os
import shutil
global dump
def download_file():
global dump
url = "http://randomsite.com/file.gz"
file = requests.get(url, stream=True)
dump = file.raw
def save_file():
global dump
location = os.path.abspath("D:\folder\file.gz")
with open("file.gz", 'wb') as location:
shutil.copyfileobj(dump, location)
del dump
Может ли кто-нибудь указать на ошибки (начальный уровень) и объяснить какие-либо более простые способы сделать это?
Спасибо!
testfile.retrieve("http://example.com/example.rpm", "/tmp/test.rpm")
.Как уже упоминалось здесь :
EDIT:
Если вы все еще хотите использовать запросы, посмотрите на этот вопрос или этот .источник
requests
Это чрезвычайно полезно по сравнению сurllib
работой с REST API. Если вы не хотите делать намного больше, это должно быть хорошо.import urllib.request
urllib.request.urlretrieve(url, filename)
Я использую wget .
Простая и хорошая библиотека, если хотите пример?
Модуль wget поддерживает версии Python 2 и Python 3
источник
Четыре метода, использующих wget, urllib и request.
testRequest - 4469882 вызова функций (4469842 примитивных вызовов) за 20,236 секунд
testRequest2 - 8580 вызовов функций (8574 примитивных вызовов) за 0,072 секунды
testUrllib - 3810 вызовов функций (3775 примитивных вызовов) за 0,036 секунды
testwget - 3489 вызовов функций за 0,020 секунды
источник
Для Python3 +
URLopener
не рекомендуется. И при использовании вы получите ошибку, как показано ниже:Поэтому постарайтесь:
источник
Экзотическое решение для Windows
источник
Я пошел по этому пути, потому что wget ESXi не скомпилирован с SSL, и я хотел загрузить OVA с веб-сайта поставщика непосредственно на хост ESXi, который находится на другой стороне мира.
Мне пришлось отключить брандмауэр (ленивый) / включить https, изменив правила (правильно)
создал скрипт Python:
Библиотеки ESXi в некотором роде сопряжены, но установщик ласки с открытым исходным кодом, похоже, использовал urllib для https ... поэтому меня вдохновило пойти по этому пути
источник
Еще один простой способ сохранить файл:
источник
urllib.urlretrieve
илиurllib.URLopener().retrieve
, непонятно, что вы имели в виду здесь.