GGRS: Geoscience, GIS, & Remote Sensing

지구과학, GIS, 그리고 원격탐사 블로그입니다.

★schedule: 정해진 시간에 파이썬(Python) 스크립트 자동 실행

댓글 7

IT

2021. 5. 29.

안녕하세요? 이번 글은 정해진 시간에 파이썬(Python) 스크립트를 자동 실행하는, 작업 예약용 라이브러리 'schedule'을 학습해 보겠습니다.

 

schedule

Job scheduling for humans.

pypi.org

schedule 라이브러리는 pip(Package Installer for Python)을 통해 설치하실 수 있습니다.

!pip install schedule

아래와 같이 사용법은 사용자에게 직관적입니다.

import schedule
import time

def job():
    print("자연, 우리의 미래...")

schedule.every(3).seconds.do(job) # 3초마다 job 실행
schedule.every(3).minutes.do(job) # 3분마다 job 실행
schedule.every(3).hours.do(job) # 3시간마다 job 실행
schedule.every(3).days.do(job)  # 3일마다 job 실행
schedule.every(3).weeks.do(job) # 3주마다 job 실행

schedule.every().minute.at(":23").do(job) # 매분 23초에 job 실행
schedule.every().hour.at(":42").do(job) # 매시간 42분에 작업 실행

# 5시간 20분 30초마다 작업 실행
schedule.every(5).hours.at("20:30").do(job)

# 매일 특정 HH:MM 및 다음 HH:MM:SS에 작업 실행
schedule.every().day.at("10:30").do(job)
schedule.every().day.at("10:30:42").do(job)

# 주중 특정일에 작업 실행
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

자, 이제 테스트해볼까요?! Google 뉴스에서 'national park' 검색결과 창이 뜨도록 코드를 작성해 봅니다.

import webbrowser

url= "https://www.google.co.kr/search?q=national+park&source=lnms&tbm=nws"
webbrowser.open(url) # Google 뉴스에서 'national park' 검색결과

위 코드를 job 함수에 넣고 작업 예약은 매일 17:00로 하겠습니다.

import schedule
import time
import webbrowser

def job():
    url= "https://www.google.co.kr/search?q=national+park&source=lnms&tbm=nws"
    webbrowser.open(url) # Google 뉴스에서 'national park' 검색결과
    
# 매일 특정 HH:MM 및 다음 HH:MM:SS에 작업 실행
schedule.every().day.at("17:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

해당 스크립트는 매일 17:00마다 웹 브라우저를 자동 실행시켜 'national park' 검색 결과를 보여줄 것입니다. 간단하죠?!

아래 글 내용을 참고하여 단일 패키지(.exe)로 생성해 보겠습니다.

 

★Pyinstaller: 파이썬 파일(.py)로부터 실행 파일(.exe) 생성

안녕하세요? 이번 글은 pyinstaller를 이용하여 파이썬 파일(.py)로부터 실행 파일(.exe)을 생성하는 과정을 정리해 보겠습니다. pyinstaller는 Python 애플리케이션과 모든 종속 항목을 단일 패키지로 묶

blog.daum.net

import os

os.chdir('D:\\GEODATA') # 디렉터리 변경
!pyinstaller --noconsole --onefile --icon=Iron_Man_icon-icons.com_54170.ico Stark.py

Stark.exe 파일이 실행되었습니다.

시작 프로그램에 추가해 봅니다. 아래 위치에 .exe 파일을 이동시킵니다.

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

자, 이제 내 시작 프로그램에 'Stark.exe' 파일이 추가되었습니다. 매일 17:00마다 'national park' 뉴스를 볼 수 있습니다.