Python 从命令提示中删除信息

Python 从命令提示中删除信息,python,for-loop,Python,For Loop,我有一个代码,它使用for循环从某个表中提取光量值(在本例中称为phot\u bp\u rp\u over\u factor)(bp) 我的代码: coord =SkyCoord(table["ra"], table["dec"], frame="icrs", unit="deg") for i in coord: r= Gaia.query_object_async(coordinate=i, width

我有一个代码,它使用for循环从某个表中提取光量值(在本例中称为
phot\u bp\u rp\u over\u factor
)(bp)

我的代码:

coord =SkyCoord(table["ra"], table["dec"], frame="icrs", unit="deg")

for i in coord:
    r= Gaia.query_object_async(coordinate=i, width = u.Quantity(0.0005, u.deg), height=u.Quantity(0.0005, u.deg))
    bp=[r["phot_bp_rp_excess_factor"]]
    print (bp[-1]) 
输出/命令提示显示:

INFO: Query finished. [astroquery.utils.tap.core]
phot_bp_rp_excess_factor
------------------------
11.4

INFO: Query finished. [astroquery.utils.tap.core]
phot_bp_rp_excess_factor
------------------------
14.4
...
但是,我只需要数字,在本例中是11.4和14.4。我不希望每次循环时它都说“信息:查询完成。[astroquery.utils.tap.core]”phot\u bp\u rp\u oversex\u factor,因为我正在尝试创建一个光量值的列表/数组。有人知道怎么做吗


编辑:我不知道这些信息是否与解决问题相关,但我使用的是Astropy库,Skycoord来自该库。

如果您想隐藏信息消息,可以尝试:

import logging
logger = logging.getLogger()
logger.setLevel(logging.CRITICAL)
基于的,我的最佳选择是它只是一个
日志记录程序

您可以使用以下命令来降低特定记录器的详细程度:

import logging
logger = logging.getLogger("astroquery")
logger.setLevel(logging.INFO)
但总的来说,最好不要在意日志消息,将数据收集/打印阶段分开:

coord = SkyCoord(table["ra"], table["dec"], frame="icrs", unit="deg")

data = []

for i in coord:
    r = Gaia.query_object_async(
        coordinate=i,
        width=u.Quantity(0.0005, u.deg),
        height=u.Quantity(0.0005, u.deg),
    )
    bp = r["phot_bp_rp_excess_factor"]
    data.append((i, bp))

for i, bp in data:
    print(i, bp)  # Or whichever formatting you'd like
此外,日志数据通常会进入标准错误流,而不是标准输出流,因此,如果您是从命令行运行程序,您只需重定向到一个文件,并仅获取
print()
输出:

python myscript.py > output.txt

我尝试了分离“收集/打印阶段”,在“打印阶段”,我得到的输出之一是
phot\u bp\u rp\u超额系数--11.469192
。因此,我仍然得到了
phot\u bp\u rp\u over\u factor
文本,而不仅仅是数字
11.469192
。我想也许我应该创建一个熊猫数据框来存储数字。当我使用
df=pd.DataFrame({'BpRp':bp})
然后是
df.to_csv('cerca.csv',index=False,encoding='utf-8')
时,它只保存了我循环的最后一个结果。你知道为什么会这样吗?或者其他可能的解决方案?您需要弄清楚
bp
的类型以及如何从中获取数据。请尝试打印(键入(bp))
…谢谢,终于成功了!