프로그래밍 언어/Python

파이썬으로 일정한 시간마다 동작 수행하기

트리맨스 2020. 7. 10. 00:12
반응형

 

파이썬을 사용하다 보면 특정 시간마다 수행하게 해야하는 동작들이 있다. 이러한 동작을 실행하기 위해서 파이썬에서는 이것을 위해 라이브러리를 제공한다. 여기서는 2가지 방법을 말할 것이다. 하나는 쓰레딩을 쓰는 것이고, 나머지 하나는 스케줄을 사용하는 것이다.

 

쓰레드


패키지 이름은 threading 이다. pip 또는 아나콘다를 이용하여 threading 을 설치해 두어야 한다. 예제를 살펴보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
import time
import threading
 
#함수 정의, 함수 내부에 threading 정의
def printhello():
    print("Hello!")
    
    #threading을 정의한다. 5초마다 반복 수행함.
    threading.Timer(5, printhello).start()
 
#printhello 
printhello()
cs

 

위 코드는 함수 내부에 threading을 정의한 후 함수를 실행하여 반복 동작이 이루어지게 했다. threading은 병렬 계산 때문에 만들어진 라이브러리이다. 하지만 threading 안에 있는 타이머 기능을 활용하면 특정 시간에 동작이 되는 코드를 제작할 수도 있다.

 

 

스케줄


패키지 이름은 schedule 이다. pip 또는 아나콘다를 이용하여 schedule을 설치해 두어야 한다. 이제 예제를 살펴보자.

 

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import time
import schedule
 
#특정 함수 정의
def printhello():
    print("Hello!")
 
 
schedule.every(30).minutes.do(printhello) #30분마다 실행
schedule.every().monday.at("00:10").do(printhello) #월요일 00:10분에 실행
schedule.every().day.at("10:30").do(job) #매일 10시30분에 
 
#실제 실행하게 하는 코드
while True:
    schedule.run_pending()
    time.sleep(1)
cs

 

위 코드에서는 30분마다 실행, 월요일 00:10 분에 실행, 매일 10:30에 실행을 하게 되어 있다. 스케줄을 사용하면 간단하고 직관적이게 알아볼 수가 있다. 

 

반응형