python - 从python中文本的开头更新打印输出
问题描述
我想在 for 循环中一个接一个地打印出各种大小的 numpy 数组,但在循环的每个步骤中删除前一个打印。对于长度小于 1 行的字符串,通常建议的解决方案如下:
import numpy as np
import time
for i in range(5):
a = np.ones(i)
print(a,end = '\r')
time.sleep(0.5)
这是因为数组适合一行,因此'\r'
print 函数中的参数可以正常工作,它会回到下一次打印的行首,所以它会打印[]
then [1.]
then [1. 1. ]
then[1. 1. 1.]
等等。
当打印大于一行时会出现问题,并且'\r'
它只是回到倒数第二行,如下所示:
for i in range(5):
a = np.ones(shape = (i,i))
print(a,end = '\r')
time.sleep(0.5)
这给出了以下内容:
[[1. 1.]
[[1. 1. 1.]
[1. 1. 1.]
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
而我希望数组更新大小而不在最后一行重叠。本质上,有没有办法end = '\r'
用其他东西替换,以便它回到整个打印的开头,而不仅仅是行的开头?我正在使用 Python 3.8.3 在 Jupyter 笔记本中执行此操作
解决方案
经过更多研究,我找到了解决方案。其中的关键词是“Jupyter notebook”,它让我可以找到这个页面:
这个用途Ipython.display
和我的问题的解决方案将写如下:
import numpy as np
import time
from IPython.display import clear_output
for i in range(5):
clear_output(wait=True)
a = np.ones(shape = (i,i))
print(a)
time.sleep(0.5)
推荐阅读
- laravel - 具有多个数据库的 Laravel
- python - Selenium 以编程方式单击下一步按钮,直到最后一页
- google-search-appliance - “生成报告时发生内部错误。” 发生错误
- javascript - 检查数组中是否存在相同的对象 - Javascript
- javascript - 我无法从数组中删除相邻的值
- visual-studio - VS2015解决方案上的静态内存总量
- reactjs - Material UI 无法将占位符添加到 TextField 类型的 Date
- mysql - 通过触发器将所有数据从一个表复制到另一个表 | phpmyadmin
- javascript - swal 函数在使用 ajax 加载的子视图中不起作用
- react-native - React Native 构建发布成功,但我得到 app-release-unsigned.apk