ipython notebook 清除单元输出的代码
在一个iPython笔记本里,我有一个循环,它一直在监听一个串口,并实时print
接收到的数据。
我想要实现的目标是只显示最新接收到的数据,也就是说,只想在输出区域显示一行最新的数据,不想让输出区域出现滚动条。
我觉得我需要在接收到新数据时清除旧的输出,然后再打印新的数据。我想知道怎么才能通过编程的方式清除旧的数据呢?
6 个回答
5
简单,如果你只想清除当前单元格的输出,只需在该单元格的末尾使用这个代码
from IPython.display import clear_output
clear_output(wait=False)
5
如果我没理解错的话,你的意思是你只想清除一个单元格的输出部分,这可能是有效的输出结果,也可能是一些你不想再看的错误信息。如果是这样的话!只需去顶部的菜单栏,选择 单元格 > 当前输出 > 清除 就可以了。
8
你可以通过这段简单的代码更好地理解函数 clear_output(wait=True)
的作用。
from IPython.display import clear_output
import time
for i in range(10):
clear_output(wait=True)
print(i)
time.sleep(1)
13
你可以使用 IPython.display.clear_output 来清除输出,就像cel的回答中提到的那样。我想补充一下,对我来说,最好的解决方案是使用这组参数来打印,这样可以避免笔记本出现任何“抖动”。
from IPython.display import clear_output
for i in range(10):
clear_output(wait=True)
print(i, flush=True)
442
你可以使用 IPython.display.clear_output
这个功能来清除一个单元格的输出。
from IPython.display import clear_output
for i in range(10):
clear_output(wait=True)
print("Hello World!")
在这个循环结束时,你只会看到一个 Hello World!
。
如果没有代码示例,就很难给你提供可用的代码。可能保存最近的 n 个事件是个不错的策略。每当这个保存的内容发生变化时,你可以清除单元格的输出,然后再打印保存的内容。