2015-04-17 58 views
2

我在Python中打開FITS文件時遇到問題。我收到以下錯誤消息:Python,PyFITS,無法打開文件

File "G:\Anaconda\lib\site-packages\pyfits\file.py", line 416, in _open_filelike % self.mode) 
IOError: File-like object does not have a 'write' method, required for mode 'ostream' 

hdulist = pft.open(path)線(我做進口pyfitspft)。

我檢查了兩次路徑 - 這是正確的。
我無法在使用PyFITS的上下文中找到對此錯誤的任何引用,並且我將爲您提供任何幫助。

更新:
我錯過了一些細節,我很抱歉。首先:我在Windows下的Anaconda發行版中使用PyFITS 3.3(Windows XP 32位)。
整個小部件,你可以找到這個鏈接的代碼:
FileView
在很短的 - 我正在做簡單的資源管理器的文件系統,只是爲了讓用戶瀏覽到和FITS文件的文件夾,並從文件夾讀取。所有項目都在PyQT4下。

+0

請提供[最小的,完整的,和可覈查的示例](http://stackoverflow.com/help/mcve)。即告訴我們你的代碼,而不是一條線,告訴我們關於PyFITS版本(蟒蛇版本?) – Alik

+0

葉,謝謝,我真的忘了如何正確地提出問題:) –

回答

2

顯然你的path不是basestring(我想你使用Python 2.7)的子類,就像PyFITS預期的那樣。實際上pathQString實例,您必須先轉換爲unicode

所以更換您的行

hdulist = pft.open(path) 

hdulist = pft.open(unicode(path.toUtf8(), encoding="UTF-8")) 
+0

非常感謝!我總是有這個編碼的問題。 –