首页 > 解决方案 > 从命令提示符删除信息

问题描述

phot_bp_rp_excess_factor我有一个代码,它使用 for 循环从某个表中提取光幅度(在本例中称为)(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。我不希望它" INFO: Query finished. [astroquery.utils.tap.core]" phot_bp_rp_excess_factor每次循环时都说,因为我正在尝试创建我的光强度数字的列表/数组。有谁知道如何做到这一点?

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

标签: pythonfor-loop

解决方案


根据图书馆的来源,我最好的选择是它只是一个logging记录器。

您可以使用例如降低该特定记录器的详细程度

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

推荐阅读