Dasar http untuk men-download dan menyimpan file ke disk dalam python?
I'm baru untuk Python dan I've telah melalui Q&A di situs ini, untuk jawaban atas pertanyaan saya. Namun, saya'm pemula dan aku menemukan itu sulit untuk memahami beberapa solusi. Saya perlu sangat dasar solusi.
Bisa seseorang tolong jelaskan solusi sederhana untuk 'men-Download file melalui http' dan 'menyimpannya ke disk dalam Windows', untuk saya?
I'm tidak yakin bagaimana menggunakan shutil dan os modul, baik.
File saya ingin men-download di bawah 500 MB dan merupakan .gz file arsip.Jika seseorang dapat menjelaskan bagaimana untuk mengekstrak arsip dan memanfaatkan file-file di dalamnya juga, yang akan menjadi besar!
Berikut ini's solusi parsial, yang saya tulis dari berbagai jawaban yang dikombinasikan:
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
Seseorang bisa menunjukkan kesalahan (tingkat pemula) dan menjelaskan setiap metode yang lebih mudah untuk melakukan hal ini?
Terima kasih!!!
Cara yang bersih untuk men-download file ini:
Ini mendownload file dari sebuah situs web dan nama-nama itu
file.gz
. Ini adalah salah satu favorit saya solusi, dari https://stackoverflow.com/questions/3042757/downloading-a-picture-via-urllib-and-python.Contoh ini menggunakan
urllib
perpustakaan, dan itu akan langsung mengambil berkas formulir sumber.Seperti yang disebutkan di sini:
EDIT:
Jika anda masih ingin menggunakan permintaan, lihatlah pertanyaan atau ini.Saya menggunakan wget.
Sederhana dan perpustakaan yang baik jika anda ingin contoh?
wget dukungan modul python 2 dan python versi 3
Empat metode menggunakan wget, urllib dan permintaan.
testRequest - 4469882 fungsi panggilan (4469842 primitif panggilan) di 20.236 detik
testRequest2 - 8580 fungsi panggilan (8574 primitif panggilan) di 0.072 detik
testUrllib - 3810 fungsi panggilan (3775 primitif panggilan) di 0.036 detik
testwget - 3489 fungsi panggilan di 0.020 detik
Untuk Python3+
URLopener
sudah ditinggalkan. Dan ketika digunakan, anda akan mendapatkan error seperti di bawah ini:Jadi, cobalah:
Eksotis Windows Solusi
Aku mulai menyusuri jalan ini karena ESXi's wget tidak dikompilasi dengan SSL dan saya ingin men-download OVA dari vendor's web langsung ke host ESXi yang berada di sisi lain dari dunia.
Aku harus menonaktifkan firewall(malas)/mengaktifkan https keluar dengan mengedit aturan(yang tepat)
membuat script python:
ESXi perpustakaan adalah jenis dipasangkan ke open source musang installer tampak menggunakan urllib untuk https... jadi terinspirasi saya untuk pergi ke jalan ini
Lain cara yang bersih untuk menyimpan file ini: