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!
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.
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