Jupyter 노트북 셀을 API를 통해 반복적으로 지우기

clear_output 함수

Jupyter에서 프로그래밍을 할 때, 루프문을 통해서 지속 적으로 로그를 출력해야 할때가 있습니다. 루프 횟수가 작다면 그런대로 봐줄만 하지만, 조금만 횟수가 늘어나더라도 스크롤의 압박을 피할수는 없게 됩니다. 이럴때는 위해 노트북에서는 셀 출력창을 지워주는 함수가 있습니다.

1 초마다 전체 작업의 수행률을 표시하는 간단한 프로그램을 작성해 보겠습니다.

In [1]:
import time

n = 10
for i in range(n):
    time.sleep(1)
    print("Progress: {0:.0%}".format(float(i + 1)/n))
Progress: 10%
Progress: 20%
Progress: 30%
Progress: 40%
Progress: 50%
Progress: 60%
Progress: 70%
Progress: 80%
Progress: 90%
Progress: 100%

이제 clear_output 함수를 사용해서 흔히 사용하는 프로그래스 상태 로그처럼 보이게 해보겠습니다.

In [2]:
from IPython.display import clear_output

import time

n = 10
for i in range(n):
    time.sleep(1)
    clear_output(wait = True)
    print("Progress: {0:.0%}".format(float(i + 1)/n))
Progress: 100%

Jupyter 에서 실행해보셨다면 의도한대로 중간에 진행율이 변경되는 것을 보셨을 겁니다. 이상 간단하지만 유용한 Jupyter Tip 이었습니다.

Comments

Comments powered by Disqus