Dépannage du téléchargement d'images avec le module de requêtes
Question :
Lors de la tentative de téléchargement d'une image en utilisant le module Requests en Python, le code ci-dessous échoue :
r = requests.get(settings.STATICMAP_URL.format(**data)) if r.status_code == 200: img = r.raw.read() with open(path, 'w') as f: f.write(img)
Pouvez-vous aider à identifier le problème et suggérer une solution ?
Réponse :
Pour télécharger une image à l'aide du module Requêtes , vous pouvez utiliser l'objet fichier réponse.raw ou parcourir la réponse. Voici les approches :
Utilisation de réponse.raw :
import requests import shutil r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: r.raw.decode_content = True shutil.copyfileobj(r.raw, f)
Cette approche force la décompression des réponses compressées et utilise Shutil.copyfileobj() pour diffuser les données vers un objet fichier.
Itération Réponse :
r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: for chunk in r: f.write(chunk)
Cette approche garantit que les données sont décompressées et lit les données par morceaux de 128 octets. Vous pouvez personnaliser la taille du morceau à l'aide de la méthode Response.iter_content().
Remarques supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!