Jupyter Ipywidgets - 如何在重新打印输出之前清除单元格输出
Jupyter Ipywidgets - How to clear cell output before re-printing the output
在 Jupyter notebook 中使用 Python 3.7,下面的代码显示了一个文本输入字段,该字段触发 handle_submit 函数打印出一些输出。
在此示例中,输入重复 40 次。
from ipywidgets import widgets
from IPython.display import display
text = widgets.Text()
display(text)
def handle_submit(sender):
print('\n'.join([text.value] * 40 ))
text.on_submit(handle_submit)
运行 此代码显示一个文本框。
如果在框中输入文本并按 Enter,handle_submit 函数为 运行 并打印 "result"。
这可以多次使用,但保留所有旧输出。因此,在使用输入字段几次后,您需要不断滚动才能获得新结果。
是否有命令在打印 handle_submit 函数的新输出之前清除单元格输出?与此示例不同,输出长度不固定,因此解决方案应处理不同大小的输出。
通过创建一个输出小部件,您可以像单元格输出一样打印到这个小部件。您还可以选择在上下文管理器中调用 clear_output()
来清除输出。
我已经对此进行了编码,因此每次提交新输入时都会清除输出,但是您没有理由不能将按钮连接到 运行 clear_output()
来执行此操作手动。
from ipywidgets import widgets
from IPython.display import display, clear_output
text = widgets.Text()
display(text)
output = widgets.Output()
display(output)
def handle_submit(sender):
with output:
clear_output()
print('\n'.join([text.value] * 40 ))
text.on_submit(handle_submit)
在 Jupyter notebook 中使用 Python 3.7,下面的代码显示了一个文本输入字段,该字段触发 handle_submit 函数打印出一些输出。 在此示例中,输入重复 40 次。
from ipywidgets import widgets
from IPython.display import display
text = widgets.Text()
display(text)
def handle_submit(sender):
print('\n'.join([text.value] * 40 ))
text.on_submit(handle_submit)
运行 此代码显示一个文本框。
如果在框中输入文本并按 Enter,handle_submit 函数为 运行 并打印 "result"。
这可以多次使用,但保留所有旧输出。因此,在使用输入字段几次后,您需要不断滚动才能获得新结果。
是否有命令在打印 handle_submit 函数的新输出之前清除单元格输出?与此示例不同,输出长度不固定,因此解决方案应处理不同大小的输出。
通过创建一个输出小部件,您可以像单元格输出一样打印到这个小部件。您还可以选择在上下文管理器中调用 clear_output()
来清除输出。
我已经对此进行了编码,因此每次提交新输入时都会清除输出,但是您没有理由不能将按钮连接到 运行 clear_output()
来执行此操作手动。
from ipywidgets import widgets
from IPython.display import display, clear_output
text = widgets.Text()
display(text)
output = widgets.Output()
display(output)
def handle_submit(sender):
with output:
clear_output()
print('\n'.join([text.value] * 40 ))
text.on_submit(handle_submit)