Tips

Python Progress Spinner

Altius 2019. 5. 11. 17:29
import sys, threading
import time

class Spinner:
    busy = False
    delay = 0.5
    @staticmethod
    def spinning_cursor():
        while 1: 
            for cursor in '|/-\\': yield cursor
    def __init__(self, delay=None):
        self.spinner_generator = self.spinning_cursor()
        if delay and float(delay): self.delay = delay
    def spinner_task(self):
        while self.busy:
            sys.stdout.write(next(self.spinner_generator))
            sys.stdout.flush()
            time.sleep(self.delay)
            sys.stdout.write('\b')
            sys.stdout.flush()
    def start(self):
        self.busy = True
        threading.Thread(target=self.spinner_task).start()
    def stop(self):
        self.busy = False
        time.sleep(self.delay)
spinner = Spinner()
spinner.start()
spinner.stop()

오 뭐야 티스토리 글쓰기 바뀌더니 코드블럭을 기본지원하네

 

'Tips' 카테고리의 다른 글

간략한 코드 공유하기  (0) 2021.04.13
VScode에서 Python Linter 경고 메시지 suppress  (2) 2021.04.07
동시성과 병렬성  (4) 2020.09.30
USB 버전별 차이점 정리  (1) 2020.09.30
HTML 마우스 함수  (0) 2018.12.09