해당 기능은 입력한 시간초 까지 대기중에 'ENTER'키가 들어오면 종료하는 함수를 제작해 봤습니다.
설치
pip install keyboard
코드
from threading import Timer
import time
import keyboard
# 대기시간(출력기능 포함)
def waittingTimer(waitTime: int, msg: str = None, showPrintUnit=10):
def message(i, message, msg=msg):
if '완료' in message:
print(f'\t[{msg} : {i}초에 {message}]')
else:
print(f'\t[{msg} : {i}초 이상 {message}]')
print(f'{waitTime}초 이전에 종료하면 "ENTER"키를 누르십시오 . . .')
flag = [True, 0]
def timer(flag):
while True:
if t.finished.is_set():
break
if flag[1] >= waitTime:
break
flag[1] += 1
if msg is not None:
if waitTime < showPrintUnit:
message(flag[1], '대기중...')
elif not (flag[1] % showPrintUnit):
message(flag[1], '대기중...')
time.sleep(1)
flag[0] = False
startTimer = False
while flag[0]:
if keyboard.is_pressed('enter'):
print('Enter키를 눌러 프로그램을 종료합니다.')
break
if not startTimer:
t = Timer(0, timer, args=(flag,))
t.start()
startTimer = True
# 과부하 방지를 위함
time.sleep(.01)
t.cancel()
message(flag[1], '완료!')
return True
if __name__ == '__main__':
waittingTimer(10, '테스트', 1)
결과