Je suis novice en Python et j'ai parcouru les questions-réponses de ce site pour trouver une réponse à ma question. Cependant, je suis un débutant et j'ai du mal à comprendre certaines des solutions proposées. J'ai besoin d'une solution très basique.
Quelqu'un pourrait-il m'expliquer une solution simple pour 'Télécharger un fichier par http' ; et 'L'enregistrer sur le disque, dans Windows' ;, pour moi ?
Je ne sais pas non plus comment utiliser les modules shutil et os.
Le fichier que je veux télécharger fait moins de 500 Mo et est une archive .gz. Si quelqu'un peut m'expliquer comment extraire l'archive et utiliser les fichiers qu'elle contient, ce serait formidable !
Voici une solution partielle, que j'ai écrite à partir de plusieurs réponses combinées :
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
Quelqu'un pourrait-il me signaler des erreurs (niveau débutant) et m'expliquer des méthodes plus simples pour y parvenir ?
Merci !
Une façon propre de télécharger un fichier est :
import urllib
testfile = urllib.URLopener()
testfile.retrieve("http://randomsite.com/file.gz", "file.gz")
Ceci télécharge un fichier depuis un site web et le nomme file.gz
. C'est l'une de mes solutions préférées, de https://stackoverflow.com/questions/3042757/downloading-a-picture-via-urllib-and-python.
Cet exemple utilise la bibliothèque urllib
, et récupère directement le fichier depuis une source.
Comme indiqué [ici][1] :
import urllib
urllib.urlretrieve ("http://randomsite.com/file.gz", "file.gz")
EDIT:
Si vous voulez toujours utiliser les requêtes, jetez un coup d'oeil à [cette question][2] ou [celle-ci][3].
[1] : https://stackoverflow.com/questions/22676/how-do-i-download-a-file-over-http-using-python/22776#22776 [2] : https://stackoverflow.com/questions/14114729/save-a-file-using-the-python-requests-library [3] : https://stackoverflow.com/questions/13137817/how-to-download-image-using-requests
J'utilise [wget][1].
Une bibliothèque simple et bonne si vous voulez faire un exemple ?
import wget
file_url = 'http://johndoe.com/download.zip'
file_name = wget.download(file_url)
le module wget supporte les versions python 2 et python 3