Так что у меня сжатый файл, который универсальное я прочитал, как так:Открыть приспосабливает файл BZ2
File = bz2.BZ2File(fname)
fits = File.read()
Я использую astropy.io.fits читать FITS файлы. На данный момент я получаю файлы .fits.bz2 от api, поэтому мне идеально хотелось бы их читать, как hdulist = fits.open(fit)
Но он просто подбрасывает TypeError: must be encoded string without NULL bytes, not str
. (Я проверял, что файл хорош, распаковывая его вручную и читая его, как описано выше).
Я думаю, мой вопрос является общим: как передать открытый файл другой функции?
Похоже, вы пытаетесь передать строку, содержащую байты файла, в 'fits.open', что не является правильным использованием. Кроме того, при публикации сообщений об исключениях из Python вы должны опубликовать полную трассировку, а не только сообщение об исключении. «Как передать открытый файл другой функции?» Как и любая другая переменная. Все, что имеет значение, состоит в том, что рассматриваемая функция делает что-то полезное с файловым объектом. – Iguananaut