astropy.io.fits:如何将新卡附加到fits文件的标题



我正在尝试将新卡插入/附加到FITS文件的现有标头(PRIMARY标头(中。使用下面的代码,我可以在终端上看到我"成功"执行了此操作。但当我在DS9中打开FITS文件并检查标题信息时,我的新卡不存在。所以我的行动没有被挽救。我在这里错过了什么?

from astropy.io import fits
with fits.open('my.fits') as hdul:
hdr = hdul[0].header
hdr.append(('NEWCARD', 'value', 'A comment.'), end=True)

hdul.info()
print(repr(hdr))

提前感谢!

另外,创建一个新的标题并将我的新卡附加在那里会更好吗?没有必要回答这个问题,我只是好奇。由于我是处理fit文件的新手,我想知道这是否是一种更好的方法。

实际上,您的代码并没有保存更新后的文件。您必须使用更新模式并调用.flush():

from astropy.io import fits
with fits.open('my.fits', mode='update') as hdul:
hdr = hdul[0].header
hdr.append(('NEWCARD', 'value', 'A comment.'), end=True)
hdul.flush()  # changes are written back to original.fits

https://docs.astropy.org/en/latest/io/fits/#save-文件更改

最新更新