De bază http file descărcarea și salvarea pe disc în python?
Am'm noi de la Python și am'am fost de gând prin Q&O de pe acest site, pentru un răspuns la întrebarea mea. Cu toate acestea, am'm un incepator si mi-e greu să înțeleagă unele dintre soluții. Am nevoie de o soluție de bază.
Ar putea cineva vă rugăm să explicați o soluție simplă pentru a 'Descărcarea unui fișier prin http' si 'Salvarea pe disc, în Windows', pentru mine?
Am'm nu sunt sigur cum să folosiți shutil și sistemul de operare pe module, fie.
Fișierul pe care îl doriți să descărcați este sub 500 de MB și este un .gz fișier arhivă.Daca cineva poate explica cum de a extrage arhiva și de a utiliza fișierele în ea, de asemenea, ar fi grozav!
Aici's o soluție parțială, pe care am scris-o din diverse răspunsuri combinate:
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
Ar putea cineva să-mi arate erori (nivel începător) și a explica orice mai ușor metode pentru a face acest lucru?
Multumesc!!!
Un mod curat de a descărca un fișier este:
Acest descarcă un fișier de pe un site web și nume este file.gz`. Aceasta este una dintre mele preferate de soluții, de la https://stackoverflow.com/questions/3042757/downloading-a-picture-via-urllib-and-python.
Acest exemplu folosește urllib` biblioteca, iar aceasta va va prelua direct fișierul constituie o sursă.
După cum sa menționat aici:
EDITARE:` Dacă totuși doriți să utilizați cereri, să ia o privire la această întrebare]2 sau aceasta.
Eu folosesc wget.
Simplu si bun, bibliotecă, dacă doriți să-exemplu?
wget suport modul python 2 și python 3 versiuni
Patru metode folosind wget, urllib și cerere.
testRequest - 4469882 apeluri de funcții (4469842 primitive apeluri) în 20.236 secunde
testRequest2 - 8580 apeluri de funcții (8574 primitive apeluri) în 0.072 secunde
testUrllib - 3810 apeluri de funcții (3775 primitive apeluri) în 0.036 secunde
testwget - 3489 apeluri de funcții în 0.020 secunde
Pentru Python3+
URLopener
este învechită. Și atunci când sunt utilizate vei primi eroare de mai jos:Deci, încercați:
Exotice Windows Soluție
Am pornit pe această cale, pentru că ESXi's wget nu este compilat cu SSL și am vrut pentru a descărca un OVA de la un furnizor's site-ul direct pe gazdă ESXi care se află pe cealaltă parte a lumii.
Am avut pentru a dezactiva firewall-ul(leneș)/activa https afară de editarea regulilor(buna)
creat script python:
ESXi bibliotecile sunt un fel de asociat în jos, dar open source nevăstuică instalare părea să utilizați urllib pentru https... așa că m-a inspirat să meargă pe acest drum
O altă modalitate de a salva fișierul este aceasta: