티스토리 뷰
일정 시간마다 특정 함수를 반복적으로 실행하는 방법에 대해서 알아보겠습니다.
주기적으로, 동일한 시간 간격으로 어떤 작업을 수행시키고 싶을 때, 이런 방법들을 사용할 수 있습니다.
1. sleep과 while문으로 반복 실행
while으로 어떤 코드를 반복 실행시킬 수 있으며, while의 루프 끝에 sleep을 추가하면, 어떤 시간 주기로 특정 코드를 반복 수행시킬 수 있습니다. time.sleep(n)은 n초 코드 실행을 지연시킵니다. n초 뒤에 다음 코드 실행됩니다.
import time
while True:
# 실행할 코드
print("일정 시간마다 실행되는 코드")
# 5초 동안 대기
time.sleep(5)
실행 결과:
일정 시간마다 실행되는 코드
일정 시간마다 실행되는 코드
일정 시간마다 실행되는 코드
2. schedule로 반복 실행
schedule은 주기적으로 어떤 함수를 실행할 수 있도록 도와줍니다.
- schedule.every(5).seconds.do(execute_code) : 5초마다 execute_code() 함수를 실행합니다.
- schedule.run_pending() : 이 함수를 실행하지 않으면 schedule을 설정해도, 함수가 실행되지 않습니다. run_pending()이 호출되었을 때, 조건에 맞는 작업이 있을 때, 그 작업을 실행시킵니다. 따라서, 이 함수는 while문에서 주기적으로 호출하여 스케줄이 될 수 있도록 합니다. while에서 너무 많이 호출될 필요는 없어서 1초 sleep 하면서 반복 호출됩니다.
import schedule
import time
def execute_code():
print("일정 시간마다 실행되는 코드")
# 스케줄 설정
schedule.every(5).seconds.do(execute_code)
while True:
schedule.run_pending()
time.sleep(1)
실행 결과:
일정 시간마다 실행되는 코드
일정 시간마다 실행되는 코드
일정 시간마다 실행되는 코드
3. Timer로 반복 실행
threading.Timer(N, function).start()는 N초 뒤에 function 함수를 실행합니다.
이것을 이용하여 어떤 함수를 실행하여 특정 코드를 수행시키고, 함수 종료 시점에 다시 동일한 함수를 몇 초 뒤에 실행되도록 Timer로 예약하면 특정 주기로 반복 실행시킬 수 있습니다.
import threading
def execute_code():
# 실행할 코드
print("일정 시간마다 실행되는 코드")
# 다음 실행 예약
threading.Timer(5, execute_code).start()
# 최초 실행
execute_code()
'개발 > Python' 카테고리의 다른 글
[Python] 소수점 2자리까지 출력 (버림, 올림, 반올림) (0) | 2023.09.23 |
---|---|
[Python] 문자열 마지막 단어 추출 (0) | 2023.09.23 |
[Python] 문자열 마지막 콤마 제거 (0) | 2023.09.20 |
[Python] 문자열에서 숫자만 제거 (0) | 2023.09.18 |
[Python] print()에서 줄바꿈 없이 출력 (0) | 2023.09.18 |
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- 리스보아 카드
- 포르투
- android
- 파란버섯
- 티스토리챌린지
- adb
- 리스본
- DART
- 주황버섯
- javascript
- 오블완
- java
- aosp 빌드
- 12e 트램
- 다크스텀프
- 15e 트램
- 파이썬
- Flutter
- 마비노기 모바일
- 원숭이의숲
- 안드로이드
- 메이플랜드
- Python
- 모루정원
- 와보땅
- Skia
- 와일드보어의 땅
- 포르투갈
- 나무던전
- Unreal Engine
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함