2015-01-26 2 views
-1

Я хочу напечатать вывод «временно», что на самом деле так;Как сделать временный вывод

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

Есть ли способ сделать это? Это похоже на показ предложения в течение 2 секунд после этого на том же месте, отображающем другую строку. Можем ли мы удалить последний вывод и распечатать что-нибудь еще в одной строке?

ответ

0

Используйте time.sleep() модуль .Эта простой код будет работать на питона консоли, но не IPython консоли, ни IPython ноутбук.

def hello(): 
    print 'Hello', 
    time.sleep(2) 
    print '\rHi' 

hello() 

Это будет работать на IPython ноутбуков, но не 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() 
+0

Я хочу отобразить его в том же месте. Смотрите, что в моем вопросе все еще 'Out [1]'. Прочтите внимательно –

+0

Этот ответ действительно забавный 'use sleep()'. Вы должны внимательно прочитать вопрос. –

+0

@ qwerty- Вы не можете выводить на ту же строку, что и вы! Вы должны сделать для этого функцию. Таким образом, вы должны вводить только одну строку, а затем выводить ее в одну строку. – dragon2fly

0

Я не уверен, что мы можем вернуться назад и «не-печать» то, что мы уже напечатаны, но так же, как на пишущая машинка реального мира, мы можем использовать carriage return, чтобы сбросить «принтер» до начала строки и перепечатать что-то еще.

Этот код демонстрирует, как он работает (это плохая бесконечная петля только для этой демонстрации). Обратите внимание на «\ r» после% d,

i = 0 
while time.sleep(0.2) == None: 
    sys.stdout.write("Counter: %d\r" %i) 
    sys.stdout.flush() 
    i += 1 
+0

Ну, по крайней мере, вы понимаете мою проблему, спасибо за ответ. Вы уверены, что это невозможно «un-print»? –

+0

@ qwerty- Думаю, нам нужно будет определить «un-print», потому что когда мы вернемся к каретке и затем напечатаем «\ n», мы по существу удалили ранее напечатанную строку: D – techolic