我想打印输出' temporary',实际上是这样的;
In[1]: print ("Hello")
Out[1]: Hello #Out[1]
#after 2 seconds for example
Out[1]: Hi #Still Out[1]
有没有办法做到这一点?它就像在相同位置后显示2秒的句子,显示另一个字符串。我们可以删除最后一个输出并在同一行上打印其他内容吗?
答案 0 :(得分:0)
使用time.sleep()模块 这个简单的代码可以在python控制台上运行,但是不是 Ipython控制台,也不是Ipython Notebook。
def hello():
print 'Hello',
time.sleep(2)
print '\rHi'
hello()
这适用于Ipython Notebook,但不适用于Ipython控制台
from IPython.display import clear_output
def hello():
print 'Hello'
sys.stdout.flush()
time.sleep(2)
clear_output()
print 'Hi'
sys.stdout.flush()
hello()
答案 1 :(得分:0)
我不确定我们是否可以退回并且“不打印”#39;我们已经打印过的东西,但就像在现实世界的打字机上一样,我们可以使用carriage return来重置打印机'到行的开头并重新打印其他内容。
这段代码演示了它是如何工作的(它只是这个演示的一个糟糕的无限循环)。注意' \ r'在%d之后,
i = 0
while time.sleep(0.2) == None:
sys.stdout.write("Counter: %d\r" %i)
sys.stdout.flush()
i += 1