如何进行临时输出

时间:2015-01-26 00:12:18

标签: python printing output

我想打印输出' temporary',实际上是这样的;

In[1]: print ("Hello")
Out[1]: Hello #Out[1]
#after 2 seconds for example
Out[1]: Hi #Still Out[1]

有没有办法做到这一点?它就像在相同位置后显示2秒的句子,显示另一个字符串。我们可以删除最后一个输出并在同一行上打印其他内容吗?

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