
안녕하세요.
오늘은 파이썬에서 time의 sleep() 함수를 활용한 시간 지연하는 방법을 포스팅하려고 합니다. 사용 방법은 워낙 간단하지만 예제를 통해서 한번 정리를 해봤습니다. 파이썬을 통하여 프로그램 개발을 하다 보면 프로세스에 따라 시간 지연을 시켜줘야 하는 경우가 종종 발생합니다. 그럴 때 time 라이브러리에서 제공되는 sleep() 함수를 활용하면 간단하게 처리할 수 있습니다.
그럼 바로 예제를 통해 알아보겠습니다.
time.sleep()
해당 함수는 인자값을 float(실수)로 받고 있으며, 정수값을 넣으면 초단위, 실수값을 넣으면 밀리초단위까지 설정할 수 있습니다.
* 인자값 예시
1 -> 1초
10 -> 10초
5.3 -> 5.3초
7.12 -> 7.12초
예제 1
import time
def task1():
"""
* 정수를 이용한 시간 초 지연 시키기
:return:
"""
# time strftime을 이용하여 sleep 시작 전 현재 시간 체크
print(time.strftime('%H:%M:%S'))
# sleep 3초 지연 실행
time.sleep(3)
# time strftime을 이용하여 sleep 종료 후 현재 시간 체크
print(time.strftime('%H:%M:%S'))
if __name__ == '__main__':
task1()
- 파이썬의 기본 라이브러리인 time을 import
- task1() 이라는 함수를 만들어 주고, 실제로 time.sleep()을 사용해서 시간 지연이 되는지 확인하기 위해 지연 시작 전과 후의 시간을 print로 확인
- 위의 함수 설명처럼 인자값에는 3초를 지연시키기 위해 '3'을 입력
- 시간 체크하는 방법은 time의 strftime() 함수를 활용해서 현재 시간을 보기 좋게 format
time.strftime('%H:%M:%S'); => 현재 시간 '시:분:초' format
실행 결과

시작 시간 21:42:51
3초 지연
종료 시간 21:42:54
3초 지연 후 정상 종료된 결과 화면입니다.
sleep() 함수는 기본적으로 인자값을 초 단위로 입력을 하게 되는데, 인자값의 타입은 float(실수)이기 때문에 소수점 단위로 입력하게 되면 밀리초 단위로도 지연이 가능합니다. 다음 예제는 실수값을 입력하여 시간 지연을 시켜보도록 하겠습니다.
예제 2
import time
def task2():
"""
* 실수를 이용한 시간 초 지연 시키기
:return:
"""
# time strftime을 이용하여 sleep 시작 전 현재 시간 체크
print(time.strftime('%H:%M:%S'))
# sleep 5.8초 지연 실행
time.sleep(5.8)
# time strftime을 이용하여 sleep 종료 후 현재 시간 체크
print(time.strftime('%H:%M:%S'))
if __name__ == '__main__':
task2()
- task2() 함수를 생성해서 예제 1과 동일한 소스 코드를 입력하고 sleep() 함수의 인자값만 변경
- task1() 함수와 동일하게 시작 시간과 종료 시간을 체크
- 지연시킬 시간은 5.8초(약 6초)로 설정
실행 결과

시작 시간 09:30:42
5.8초 지연 (약 6초)
종료 시간 09:30:48
5.8초 지연을 시킨 결과 약 6초가량 경과 후 종료가 된 결과 화면입니다.
실수값을 줘서 밀리초 단위로도 시간 지연을 시켜줄 수 있습니다.
그럼 다음은 조금 더 응용해서 지연을 시켜보도록 하겠습니다.
예제 3
def task3():
"""
* while을 이용한 시간 초 지연 시키기
:return:
"""
count = 1
while True:
# time strftime을 이용하여 sleep 시작 전 현재 시간 체크
print('시작 시간 : %s' % time.strftime('%H:%M:%S'))
print('안녕하세요. %s' % count)
count += 1
# sleep 5초 지연 실행
time.sleep(5)
if __name__ == '__main__':
task3()
이번 예제는 while문을 이용하여 시간 지연을 시키는 소스 코드를 작성하였습니다.
- count : 카운트값으로 loop를 돌 때마다 증가시켜주며 현재의 카운트 확인
- while True : 조건을 True로 줘서 무한 반복하여 코드를 실행
- while loop 마지막에 sleep(5)를 실행시켜 매 loop마다 5초씩 지연 후 다음 loop를 돌 수 있도록 설정
실행 결과

5초마다 loop를 돌면서 카운트를 증가시키며 시간을 체크하는 실행 결과 화면입니다.
마무리
오늘은 이렇게 파이썬의 sleep() 함수 사용 방법에 대해 예제를 통해 알아봤습니다. 사용 방법은 정말 간단하지만 활용도가 엄청 높은 기능입니다. 저도 실제 업무를 통해 스케줄 개발을 하면서 활용을 많이 했던 기능입니다.
그럼 오늘도 저의 작고 소중한 글을 읽어주셔서 감사합니다.

'Python' 카테고리의 다른 글
| 파이썬 unconverted data remains 에러 해결하기 (0) | 2023.01.26 |
|---|---|
| 파이썬 strptime() argument 0 must be str 에러 해결하기 (0) | 2023.01.24 |
| 파이썬 시간 format과 parse 알아보기 (time strftime(), strptime()) (0) | 2023.01.24 |
| [Python] 파이썬 문자열에서 특정 문자 찾기 (find, startswitch, endswitch, index) (0) | 2023.01.09 |
| [Python] 천 단위 콤마 찍는 함수와 필요성을 알아보자 (0) | 2022.12.26 |