Si necesitas bajar una imagen con Python  de la Web, transfórmala y guardarla como archivo local, este ejemplo puede ser útil.

bajar una imagen con Python de la Web

Código para bajar una imagen con Python de la Web:

Resultado:

Aquí una pequeña explicación de cada una de las librerías utilizadas en el código

StringIO y cStringIO

StringIO proporciona un medio adecuado para trabajar con texto en memoria utilizando la API de archivo (leer, escribir, etc.) y por lo tanto implementa las mismas . Hay dos implementaciones separadas. La versión cStringIO está implementada en C para aumentar la velocidad, mientras que StringIO está escrita en Python para la portabilidad.

PIL

Python Imaging Library (PIL) es una libreria que añade tratamiento de imágenes a Python. Es compatible con muchos formatos de archivo y proporciona capacidades de procesamiento de imágenes y gráficos.

urllib

El módulo urllib proporciona una interfaz de alto nivel para obtener datos de la WWW. En particular, la función urlopen () es similar a la Built-in function open() pero acepta una URL en lugar de un nombre de archivo:

urlopen(url)
Abre un socket a un servidor de algún lugar en la red. Si la conexión no se puede hacer se produce la excepción IOError. Si todo iba bien, se devuelve un objeto de tipo fichero, compatible con los métodos: read(), readline(), readlines(), fileno(), close(), info(), getcode() y geturl()

urlretrive(url, [filename])
Copia el recurso de red indicado la URL a un archivo local. Devuelve una tupla (filename, headers) donde filename es el nombre del archivo local bajo el que se puede encontrar el recursos y las cabeceras es cualquier método de objeto devuelto por urlopen(). El segundo argumento, si está presente, especifica la ubicación del archivo donde se copia el recurso. En su defecto será un archivo temporal.