2010-02-27 5 views
2

J'essaie de télécharger des images à partir d'URL et de les transmettre à PIL.Python PIL et StringIO

Je voudrais utiliser le moins de ressources possible, en particulier la RAM. Quelle serait la meilleure façon de gérer cela? J'ai eu des suggestions pour utiliser cStringIO.

+0

Qu'aimeriez-vous en faire? Pourriez-vous esquisser le processus? – extraneon

+0

@extraneon: merci de demander! J'essaie de télécharger des images à partir d'une page Web, de vérifier les tailles de chaque image sur la page via PIL, de choisir la meilleure, de la vignette et de la télécharger sur Amazon S3. C'est tout le processus ^^. – RadiantHex

+2

avez-vous envisagé de diviser le processus un programme pour télécharger les jeux dans un répertoire temporaire, et un autre programme pour traiter ces téléchargements? Généralement, l'espace disque est un peu moins un problème que la RAM, et la bande passante sortante a tendance à être plus précieuse que la réception. C'est probablement plus facile avec deux scripts séparés. – extraneon

Répondre

4

Malheureusement fichier aime des fonctions de réseau telles que urllib2.urlopen() ne supportent pas toutes les méthodes nécessaires, vous aurez donc besoin de lire les données dans un StringIO ou cStringIO afin de pouvoir les transmettre à Image.open().

+0

J'ai eu la même question, et cette réponse revient régulièrement encore et encore. On dirait que StringIO est la voie à suivre, alors! – heltonbiker

Questions connexes