2012-07-30 68 views
9

我使用PIL定期从NOAA打开AREA文件。在我收到的最后一批图像中,image.open()命令根本不起作用。这是我写的一个简单的代码,可以得到相同的结果。它将使用一个月前的文件打开,旋转和执行常规任务,而不是从今天开始的文件。PIL image.open()适用于某些图像,但不适用于其他人

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

这里的错误:

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 

这是我曾尝试:

  1. 打开两个单独的机器的图像。
  2. 在出现许可问题时更改文件的文件夹
  3. 重新下载图像以及其他两个批处理,都使用手动FTP和我们的自动脚本。

我的假设是,我们的下载脚本存在问题,并且它没有完全下载该文件,但该假设被新文件大小正确并且我手动下载它们这一事实所拒绝使用FTP客户端并得到相同的结果。

我唯一的理论是今天的NOAA文件存在问题,或者他们已经被改变了,PIL无法再处理它们,但我觉得不太可能。

任何帮助非常感谢,谢谢

+2

假设它是开放的,你可以链接到其中一个图像吗? – DSM 2012-07-30 20:06:37

+0

你知道图像格式是否相同吗?您的PIL安装是否支持JPG/PNG/TIFF格式? – 2012-07-30 20:47:12

+0

图片是本地的,从NOAA CLASS网站下载。我没有理由相信文件格式不同,因为我们多年来一直使用相同的方法。 – 2012-07-31 14:19:28

回答

4

也许是内容实际上并没有同步到磁盘。请尝试Image.open(open("path/to/file", 'rb'))

+0

我遇到了与django-ckeditor相同的问题。在文件名是新创建后立即调用'Image.open(filename)'导致:“IOError:无法识别图像文件”。但后来我手动调用'Image.openImage.open(filename)',没有发生错误!所以我试着将'Image.open(filename)'改成'Image.open(open(filename,'rb'))'然后就可以了。 – wonder 2012-08-10 07:29:34

+0

当我尝试读取PNG文件时,它不起作用。 – 2017-04-30 13:33:15

相关问题