1

だから私は次のように読んだ圧縮されたfitsファイルを持っています:

File = bz2.BZ2File(fname)
fits = File.read()

私は astropy.io.fits を使用して fit ファイルを読み込んでいます。現時点では、API で .fits.bz2 ファイルを取得しているので、理想的には次のように読み取れるようにしたいと考えています。hdulist = fits.open(fit)

しかし、それはただ吐きますTypeError: must be encoded string without NULL bytes, not str。(ファイルを手動で解凍して上記のように読み取ることで、ファイルが適切であることを確認しました)。

私の質問は一般的なものだと思います: 開いているファイルを別の関数に渡す方法は?

4

1 に答える 1

4

ドキュメントから、次のastropyことがわかります。

astropy.io.fits.open最初の引数として、ファイル名、開いているファイル、またはファイルのようなオブジェクトを取ります

ファイル オブジェクト自体astropyではなく、ファイルの内容を に渡そうとしています。

例を機能させるには、返されたファイル オブジェクトbz2を astropy に渡すだけで、非圧縮ファイルのように処理されます。

from astropy.io import fits
import bz2

decompressed_file = bz2.BZ2File("example.fits.bz2")
hdulist = fits.open(decompressed_file)
于 2015-01-26T10:45:33.057 に答える