2012-07-30 100 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

相關問題