Jeg er ny i Python, og jeg har gått gjennom spørsmål og svar på dette nettstedet for å finne svar på spørsmålet mitt. Men jeg er nybegynner og synes det er vanskelig å forstå noen av løsningene. Jeg trenger en veldig enkel løsning.
Kan noen forklare meg en enkel løsning på 'Nedlasting av en fil via http' og 'Lagring på disk, i Windows'?
Jeg er heller ikke sikker på hvordan jeg skal bruke shutil og os-moduler.
Filen jeg vil laste ned er under 500 MB og er en .gz-arkivfil. hvis noen kan forklare hvordan man pakker ut arkivet og bruker filene i det også, ville det vært flott!
Her er en delvis løsning, som jeg skrev fra forskjellige svar kombinert:
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
Kan noen påpeke feil (nybegynnernivå) og forklare noen enklere metoder for å gjøre dette?
Takk for hjelpen!
En ren måte å laste ned en fil på er:
import urllib
testfile = urllib.URLopener()
testfile.retrieve("http://randomsite.com/file.gz", "file.gz")
Denne laster ned en fil fra et nettsted og kaller den file.gz
. Dette er en av mine favorittløsninger, fra https://stackoverflow.com/questions/3042757/downloading-a-picture-via-urllib-and-python.
Dette eksemplet bruker urllib
-biblioteket, og henter filen direkte fra en kilde.
Som nevnt her:
import urllib
urllib.urlretrieve ("http://randomsite.com/file.gz", "file.gz")
EDIT:
Hvis du fortsatt ønsker å bruke forespørsler, kan du ta en titt på dette spørsmålet eller dette.
Jeg bruker wget.
Enkelt og godt bibliotek hvis du vil ha et eksempel?
import wget
file_url = 'http://johndoe.com/download.zip'
file_name = wget.download(file_url)
wget-modulen støtter python 2- og python 3-versjoner