2015-01-26 3 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() 모듈 는 간단한 코드는 파이썬 콘솔에서 작동합니다 .This하지만 하지 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을 사용하여 '프린터'를 줄의 시작 부분으로 재설정하고 다른 것을 다시 인쇄 할 수 있습니다.

이 코드는 어떻게 작동하는지 보여줍니다 (이 데모에서는 단지 무한 루프입니다). '% d 뒤의 \ r을 확인하십시오.

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

글쎄, 적어도 내 문제를 이해해 주셔서 감사합니다. '인쇄 취소'가 가능하지 않습니까? –

+0

@ qwerty- 우리는 'un-print'를 정의해야 할 것입니다. 왜냐하면 우리가 캐리지 리턴을하고 '\ n'을 인쇄 할 때 우리는 이전에 인쇄 된 줄을 지워 버렸기 때문입니다 : D – techolic

관련 문제