In questo articolo vedremo come effettuare il download di un file salvandolo con shutil in Python.
Possiamo usare lo stream di dati del modulo requests in una richiesta GET e passare tali dati grezzi al metodo copyfileobj() che effettuerà la scrittura del file di destinazione nel percorso specificato dal gestore file.
import shutil
import requests
def download(file_url, target_path):
try:
res = requests.get(file_url, stream=True, allow_redirects=True)
with open(f'{target_path}', 'wb') as f:
shutil.copyfileobj(res.raw, f)
return True
except requests.exceptions.RequestException:
return False
La nostra funzione di download restituirà un valore booleano che indicherà l'esito dell'operazione. Volendo migliorare il nostro codice, potremmo restituiire una tuple o None inserendo nella prima il flag booleano e il percorso del file scaricato.