본문 바로가기
Be Smart/Python

작업스케줄러로 Python Batch파일 실행하기

by 반월하 2022. 5. 3.
728x90

매일 반복되는 업무를 진행 할 때, (예를 들면 기사 수집 크롤링과 같은)

일일히 켜줄 필요 없이 컴퓨터에서 매일 특정 시간에 자동적으로 구동해준다면 매우 편할 것이다.

 

이때 사용하는 OS가 윈도우 라면 윈도우 작업스케쥴러를 이용한다면, 손쉽게 작업할 수 있다.


먼저, 업무 자동화 로직이 작성된 파이썬 파일이 필요합니다. 이미 완성되어있다고 가정하고 저는 간단하게 hello python을 출력하는 예시 프로그램을 준비하겠습니다. main.py를 엔트리 파일로 잡았습니다.

* main.py

def main():
  print("hello python")

if __name__ == "__main__":
    main()

 

배치파일 만들기

 

메모장을 열고 다음과 같이 작성합니다.

* main.bat

"C:\Users\사용자명\anaconda3\python.exe" "프로젝트디렉터리경로\main.py"

 

첫번째 경로는 아나콘다 설치 디렉터리에 있는 python.exe 경로를 쓰고, 두 번째 경로는 업무 자동화를 위해 만든 파이썬 프로그램의 엔트리 파일 경로를 써줍니다.

 

혹은 새로 생성한 가상환경을 사용하고 싶다면 다음과 같이 아나콘다를 실행하여 conda명령어를 사용하는 스크립트를 작성합니다.

 

* main.bat

call C:\Users\사용자명\anaconda3\Scripts\activate.bat

call conda activate 가상환경명
call cd 프로젝트 절대경로
call python main.py
call conda deactivate

 

둘다 엔트리 파일인 main.py를 실행하는 방식이지만 두 번째 방식은 conda 명령어를 작성하고 특정 가상환경을 사용할 수 있다는 점이 다릅니다.

 

내용을 작성했으면 메모장을 저장할 때 파일형식을 "모든 파일"로 하고, 파일 이름에 .bat을 붙여서 저장합니다.

 

메모장 저장

 

윈도우 작업 스케줄러에서 작업 등록하기

 

윈도우 검색 창에 작업 스케줄러를 치고 열어줍니다.

 

작업 스케줄러

 

작업 스케줄러를 열었으면 우측에서 작업 만들기를 찾아 클릭합니다.

 

작업 만들기

 

일반 탭에서는 이름에는 스케줄러 이름을 적어주고 보안에서는 가장 높은 수준의 권한으로 실행을 체크합니다.

 

일반 탭 옵션값

 

트리거 탭에서는 새로 만들기를 눌러 새 트리거를 만들어주는데 프로그램이 실행될 주기와 시각을 지정합니다.

 

새 트리거

 

동작 탭에서는 새로 만들기를 눌러 새 동작을 만들어주는데 프로그램/스크립트에는 배치파일의 경로(배치파일이 위치한 디렉터리 경로 + \배치파일명.bat)를 써주고 시작 위치에는 배치파일이 위치한 디렉터리 경로를 써줍니다.

 

새 동작

 

조건 설정 탭은 하드웨어 절전모드 지원상태나 프로그램 특성을 고려해 옵션 값을 고릅니다.

 

이렇게 해서 새 작업을 등록하면, 이제 정해진 시각이 될 때마다 자동으로 파이썬 프로그램이 실행될 것입니다.

파이썬으로 업무 자동화 로직을 만들면 이런 식으로 작업 스케줄러에 등록하여 특정 시각마다 자동으로 실행하도록 할 수 있습니다.

728x90

댓글