I have this test code called table.py :
import numpy as np
from astropy.io import fits
counts = np.array([312, 334, 308, 317])
names = np.array(['NGC1', 'NGC2', 'NGC3', 'NGC4'])
c1 = fits.Column(name='target', format='10A', array=names)
c2 = fits.Column(name='counts', format='J', unit='DN', array=counts)
coldefs = fits.ColDefs([c1, c2])
tblHdu = fits.TableHDU.from_columns(coldefs)
hdu = fits.PrimaryHDU(np.random.randn(1000))
hduList = fits.HDUList([hdu])
hduList.append ( tblHdu )
hduList.writeto ( "test.fits", output_verify="ignore", overwrite=True )
And it produces an unwanted output like this :
python3 table.py
A10
I11
I would like to get rid of those "A10" and "I11" printouts, how can I do this ?
答案 0 :(得分:3)
升级天蝎座。
2016年11月4日在提交aaaa6fb中引入了意外的print()
功能,该功能仅在2017年11月8日的提交68050d8中删除。 / p>
版本2.0.4和3.0(当前)在2017年11月8日之后发布,并且不再有令人讨厌的print()
输出。
答案 1 :(得分:2)
在写出FITS文件时,您可以暂时禁止标准系统输出。以下代码段将标准输出重定向至/dev/null
,保存test.fits
,然后将输出恢复为sys.stdout
:
import os
import sys
with open(os.devnull, "w") as stdout_null:
stdout_sys = sys.stdout
sys.stdout = stdout_null
hduList.writeto ("test.fits", output_verify="ignore", overwrite=True)
sys.stdout = stdout_sys