在 iPython notebook 中,我有一个 while 循环监听串行端口和 print
实时接收的数据。
我想要实现的是只显示最新接收到的数据(即只有一行显示最新数据。单元格输出区域没有滚动)
我需要的(我认为)是在收到新数据时清除旧单元格输出,然后打印新数据。我想知道如何以编程方式清除旧数据?
原文由 aha 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 iPython notebook 中,我有一个 while 循环监听串行端口和 print
实时接收的数据。
我想要实现的是只显示最新接收到的数据(即只有一行显示最新数据。单元格输出区域没有滚动)
我需要的(我认为)是在收到新数据时清除旧单元格输出,然后打印新数据。我想知道如何以编程方式清除旧数据?
原文由 aha 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 IPython.display.clear_output 来清除 cel 答案中提到的输出。我要补充一点,对我来说,最好的解决方案是使用这种参数组合进行打印,而不会使笔记本出现任何“抖动”:
from IPython.display import clear_output
for i in range(10):
clear_output(wait=True)
print(i, flush=True)
原文由 hof.and.or 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答834 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
您可以使用
IPython.display.clear_output
清除单元格的输出。在此循环结束时,您只会看到一个
Hello World!
。没有代码示例,很难为您提供工作代码。缓冲最新的 n 个事件可能是一个很好的策略。每当缓冲区发生变化时,您都可以清除单元格的输出并再次打印缓冲区。