所以我有一个压缩的拟合文件,我这样读:
File = bz2.BZ2File(fname)
fits = File.read()
我正在使用astropy.io.fits来读取拟合文件。目前我通过api获取我的.fits.bz2文件,所以我希望能够像hdulist = fits.open(fit)
一样阅读它们
但它只会引发TypeError: must be encoded string without NULL bytes, not str
。 (我已经通过手动解压缩并且像上面那样阅读它来检查文件是否正常。)
我想我的问题是一般的问题:如何将打开的文件传递给另一个函数?
答案 0 :(得分:3)
从astropy
astropy.io.fits.open
您可以找到:
astropy
获取文件名,打开文件或类似文件的对象,因为它是第一个参数
您正在尝试将文件中的内容传递到bz2
,而不是文件对象本身。
为了使您的示例工作,您需要将from astropy.io import fits
import bz2
decompressed_file = bz2.BZ2File("example.fits.bz2")
hdulist = fits.open(decompressed_file)
返回的文件对象传递给astropy,它将像未压缩文件一样处理它。
{{1}}