2012-07-30 13 views
9

Uso PIL para abrir archivos AREA de NOAA de forma regular. En el último lote de imágenes que recibí, el comando image.open() simplemente no funciona. Aquí hay un código simple que escribí que produce los mismos resultados. Abrirá, rotará y realizará tareas normales con un archivo de hace un mes y no con un archivo de hoy.PIL image.open() trabajando para algunas imágenes pero no otras

from PIL import Image 
im = Image.open("path/to/file") 
im.show() 

Aquí está el error:

File "image_goes.py", line 2, in <module> 
im = Image.open("path/to/file") 
File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1980, in open 
raise IOError("cannot identify image file") 
IOError: cannot identify image file 

Esto es lo que he intentado:

  1. Abrir la imagen en dos máquinas separadas.
  2. Cambiando la carpeta del archivo en caso de que hubiera un problema de permiso
  3. Volviendo a descargar la imagen, al igual que otros dos lotes, ambos usando FTP manualmente Y nuestro script automático.

Mi hipótesis era que había un problema con nuestro script de descarga y que no estaba descargando completamente el archivo, pero esa hipótesis es rechazada por el hecho de que los nuevos archivos son del tamaño correcto y que los descargué manualmente usando un cliente FTP y obtuve los mismos resultados.

Mi única otra teoría es que hoy hay un problema con los archivos NOAA o que se han modificado de tal manera que PIL ya no puede manejarlos, pero me parece poco probable.

Cualquier ayuda muy apreciada, Gracias

+2

¿Podría dar un enlace a una de las imágenes, suponiendo que esté abierta? – DSM

+0

¿sabes si el formato de imagen es el mismo? ¿Sus instalaciones PIL tienen soporte para formatos JPG/PNG/TIFF? –

+0

Las imágenes son locales, descargadas del sitio web NOAA CLASS. No tengo ninguna razón para creer que el formato de archivo sea diferente, ya que hemos estado usando el mismo método durante años. –

Respuesta

4

Tal vez sea el contenido no es en realidad sincronizado con el disco. intente Image.open(open("path/to/file", 'rb'))

+0

Me encontré con el mismo problema con django-ckeditor. La llamada inmediata de 'Image.open (filename)' después del nombre del archivo fue un resultado nuevo creado en: "IOError: no se puede identificar el archivo de imagen". Pero luego llamé 'Image.openImage.open (filename)' manualmente, ¡no se produjo ningún error! Así que traté de cambiar 'Image.open (filename)' a 'Image.open (open (filename, 'rb'))' y luego está OK. – wonder

+0

No funciona para mí cuando intento leer un archivo PNG. –

Cuestiones relacionadas