Grunnleggende http-filnedlasting og lagring på disk i python?

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!

Løsning

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.

Kommentarer (8)

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.

Kommentarer (6)

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

Kommentarer (0)