89 votes

Enregistrer un fichier à l'aide de la bibliothèque python requests

Duplicata possible :
Comment télécharger une image en utilisant des requêtes

Je sais que la récupération d'une URL est aussi simple que requests.get et je peux accéder au corps de la réponse brute et l'enregistrer dans un fichier, mais pour les gros fichiers, existe-t-il un moyen de diffuser directement dans un fichier ? Comme si je téléchargeais un film ou autre chose ?

172voto

Blender Points 114729

Curieusement, les demandes n'ont rien de simple pour cela. Vous devrez itérer sur la réponse et écrire ces morceaux dans un fichier :

with open('output.jpg', 'wb') as handle:
    response = requests.get('http://www.example.com/image.jpg', stream=True)

    if not response.ok:
        # Something went wrong

    for block in response.iter_content(1024):
        if not block:
            break

        handle.write(block)

J'utilise généralement urllib.urlretrieve() . Cela fonctionne, mais si vous devez utiliser une session ou une sorte d'authentification, le code ci-dessus fonctionne également.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X