Είμαι νέος στην Python και έχω διαβάσει τα Q&A σε αυτόν τον ιστότοπο, για μια απάντηση στην ερώτησή μου. Ωστόσο, είμαι αρχάριος και δυσκολεύομαι να κατανοήσω κάποιες από τις λύσεις. Χρειάζομαι μια πολύ βασική λύση.
Θα μπορούσε κάποιος να μου εξηγήσει μια απλή λύση για την 'Λήψη ενός αρχείου μέσω http' και 'Αποθήκευση στο δίσκο, στα Windows', σε μένα;
Επίσης, δεν είμαι σίγουρος πώς να χρησιμοποιώ το shutil και τα os modules.
Το αρχείο που θέλω να κατεβάσω είναι κάτω από 500 MB και είναι ένα αρχείο αρχείου .gz. Αν κάποιος μπορεί να εξηγήσει πώς να εξάγουμε το αρχείο και να χρησιμοποιήσουμε τα αρχεία σε αυτό επίσης, αυτό θα ήταν υπέροχο!
Εδώ'είναι μια μερική λύση, που έγραψα από διάφορες απαντήσεις σε συνδυασμό:
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
Θα μπορούσε κάποιος να επισημάνει τα λάθη (επίπεδο αρχάριου) και να εξηγήσει τυχόν ευκολότερες μεθόδους για να γίνει αυτό;
Ευχαριστώ!
Ένας καθαρός τρόπος για να κατεβάσετε ένα αρχείο είναι:
import urllib
testfile = urllib.URLopener()
testfile.retrieve("http://randomsite.com/file.gz", "file.gz")
Αυτό κατεβάζει ένα αρχείο από έναν ιστότοπο και το ονομάζει file.gz
. Αυτή είναι μια από τις αγαπημένες μου λύσεις, από το https://stackoverflow.com/questions/3042757/downloading-a-picture-via-urllib-and-python.
Αυτό το παράδειγμα χρησιμοποιεί τη βιβλιοθήκη urllib
, και θα ανακτήσει απευθείας το αρχείο από μια πηγή.
Όπως αναφέρεται εδώ:
import urllib
urllib.urlretrieve ("http://randomsite.com/file.gz", "file.gz")
EDIT:
Αν εξακολουθείτε να θέλετε να χρησιμοποιείτε αιτήσεις, ρίξτε μια ματιά σε αυτή την ερώτηση ή αυτή εδώ.
Χρησιμοποιώ το wget.
Απλή και καλή βιβλιοθήκη αν θέλετε να παράδειγμα?
import wget
file_url = 'http://johndoe.com/download.zip'
file_name = wget.download(file_url)
Η ενότητα wget υποστηρίζει τις εκδόσεις python 2 και python 3.