Python'da temel http dosya indirme ve diske kaydetme?

Python'da yeniyim ve soruma cevap bulmak için bu sitedeki Soru&Cevap bölümünü inceliyorum. Ancak, ben yeni başlayan biriyim ve bazı çözümleri anlamakta zorlanıyorum. Çok basit bir çözüme ihtiyacım var.

Birisi bana 'http' aracılığıyla bir dosya indirmenin ve 'Windows'ta diske kaydetmenin' basit bir çözümünü açıklayabilir mi?

Shutil ve os modüllerini nasıl kullanacağımdan da emin değilim.

İndirmek istediğim dosya 500 MB'ın altında ve bir .gz arşiv dosyası. Birisi arşivi nasıl çıkaracağımı ve içindeki dosyaları nasıl kullanacağımı açıklayabilirse, bu harika olur!

İşte çeşitli cevapları birleştirerek yazdığım kısmi bir çözüm:

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

Birisi hatalara işaret edebilir (başlangıç seviyesi) ve bunu yapmak için daha kolay yöntemleri açıklayabilir mi?

Teşekkürler!

Çözüm

Bir dosyayı indirmenin temiz bir yolu şudur:

import urllib

testfile = urllib.URLopener()
testfile.retrieve("http://randomsite.com/file.gz", "file.gz")

Bu, bir web sitesinden bir dosya indirir ve file.gz olarak adlandırır. Bu benim favori çözümlerimden biri, https://stackoverflow.com/questions/3042757/downloading-a-picture-via-urllib-and-python adresinden.

Bu örnek urllib kütüphanesini kullanır ve dosyayı doğrudan bir kaynaktan alır.

Yorumlar (8)

Burada]1 belirtildiği gibi:

import urllib
urllib.urlretrieve ("http://randomsite.com/file.gz", "file.gz")

EDIT:` Eğer hala istekleri kullanmak istiyorsanız, bu soru veya bu'e bir göz atın.

Yorumlar (6)

Ben wget kullanıyorum.

Basit ve iyi bir kütüphane örneği isterseniz?

import wget

file_url = 'http://johndoe.com/download.zip'

file_name = wget.download(file_url)

wget modülü python 2 ve python 3 sürümlerini destekler

Yorumlar (0)