Vérifier que c'est une image qui peut être fait de plusieurs façons. Le plus difficile de vérifier est de l'ouverture du fichier avec l'Python Image de la Bibliothèque et de voir si cela déclenche une erreur.
Si vous voulez vérifier le type de fichier avant de le télécharger, regarder le mime-type du serveur distant donne.
import urllib
url ="http://example.com/image.jpg"
fname ="image.jpg"
opener = urllib.urlopen( url )if opener.headers.maintype =='image':# you get the idea
open( fname,'wb').write( opener.read())
2
Même chose à l'aide de httplib2...
from PIL importImagefromStringIOimportStringIOfrom httplib2 importHttp# retrieve image
http =Http()
request, content = http.request('http://www.server.com/path/to/image.jpg')
im =Image.open(StringIO(content))# is it valid?try:
im.verify()exceptException:pass# not valid
0
Pour la partie de la question à l'égard de copie une image distante, voici une réponse inspirée par cette réponse:
À télécharger:
Pour vérifier pouvez utiliser PIL
Si vous voulez juste pour vérifier que c'est une image, même si les données de l'image n'est pas valide: Vous pouvez utiliser imghdr
La méthode vérifie les en-têtes et détermine le type d'image. Il sera de retour Aucun si l'image n'était pas identifiable.
Télécharger les choses
Vérifier que c'est une image qui peut être fait de plusieurs façons. Le plus difficile de vérifier est de l'ouverture du fichier avec l'Python Image de la Bibliothèque et de voir si cela déclenche une erreur.
Si vous voulez vérifier le type de fichier avant de le télécharger, regarder le mime-type du serveur distant donne.
Même chose à l'aide de httplib2...
Pour la partie de la question à l'égard de copie une image distante, voici une réponse inspirée par cette réponse:
Noter que cette approche fonctionne pour copier un fichier à distance de toute binaire du type de support.