我正在使用一个嵌入式Python程序来获取GNU无线电伴奏中大量频谱的平均值。我想要连续地打印平均光谱的数目,以便输出发生在同一行上,总是覆盖前一个数字。所以不要在一条单独的线上打印每个数字。
在Python中,您可以通过以下方式进行操作:
for i in range(100000):
print('Number of spectra averaged ', i, end='\r')但是,这在嵌入式Python程序中不起作用,每个数字都在自己的行上,这非常耗时。
我认为转义字符'\r‘会导致问题,但可能不是因为转义字符'\n’在Python程序中打印时的工作方式。
我已经尝试过在一行上打印输出的所有技巧,但没有一个适用于嵌入式Python程序。
嵌入式Python程序的打印既可用于启动gnuradio伙伴的终端,也可用于gnuradio伙伴的控制台。在这两种情况下,打印都会产生几行,而不是总是被覆盖的一行。
如何在一行上打印,覆盖前面的输出?我在Ubuntu 22.04.4上使用GRC 3.9.5.0 (Python 3.8.10)
干杯,金莫
发布于 2022-08-26 10:42:58
谢谢马库斯
是的,我指的是GRC中的“迷你终端”或“日志终端”。
使用QT号码Sink可以很好地工作。我刚刚向Python块添加了一个输出(由于Number Sink不能接收整数值输入),并将其定向到Number Sink。
在Number Sink中,我使用的是“更新周期=0.5”,因为如果使用零值,CPU负载将增加约10%
https://stackoverflow.com/questions/73479111
复制相似问题