从bz2打开适合文件

时间:2015-01-26 07:48:02

标签: python fits astropy

所以我有一个压缩的拟合文件,我这样读:

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。 (我已经通过手动解压缩并且像上面那样阅读它来检查文件是否正常。)

我想我的问题是一般的问题:如何将打开的文件传递给另一个函数?

1 个答案:

答案 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}}