본문 바로가기
프로그래밍/Python

[Python] WatchDog 사용하기

by rahites 2024. 5. 21.

상황

  • 2가지의 딥러닝 프로그램을 연결하는 과정에서 첫번째 프로그램의 결과로 파일이 생성되면, 파일이 생성되었다는 사실을 인지하여 해당 파일을 Input으로 두번째 프로그램이 돌 수 있도록 설계하는 것이 필요했다.
  • 그러기 위해서 필요한 것이 Agent 개념인데 Agent(대리인)는 넓게 보자면 프로그램 속에서 사람이 해야하는 일을 대신 해주는 시스템을 말한다.
  • 고로 이번 Task에서 내가 필요한 Agent의 역할 : "특정 폴더에 파일이 생성되는 것을 감지하고, 파일이 생성되었다면 프로그램 2를 실행하여라"

 

해결 방안

- 해당 Agent 역할에 맞는 Python 패키지로는 WatchDog이 있다.

- WatchDog은 특정 폴더에 파일이 생성되거나 삭제될 때마다 정해진 명령어를 실행할 수 있게 도와주는 패키지이다.

https://pypi.org/project/watchdog/

 

watchdog

Filesystem events monitoring

pypi.org

 

  1. FileSystemEventHandler를 상속받는 Class 생성
    • on_moved : 파일, 디렉토리가 이동하거나 이름이 바뀔 때 실행
    • on_created : 파일, 디렉토리가 생성되면 실행
    • on_deleted : 파일, 디렉토리가 삭제되면 실행
    • on_modified : 파일, 디렉토리가 수정되면 실행
  2. Observer 객체 생성
    • Observer 객체에 감시할 디렉토리 경로를 주고 시작함
    • schedule : 지정된 경로를 모니터링하고 파일 시스템의 변경 사항을 감지하기 시작함
    • join : Observer가 모든 이벤트 처리를 마칠 때까지 대기한 후 프로그램을 종료

 

특징

  • 일반적으로 time.sleep()을 걸어서 n초마다 한번씩 디렉토리를 검사하게 끔 구성

 

진행 사항

  • FastAPI를 연동하여 백엔드 작업 코드 설계 진행

 

 

참고자료 (예시 코드 확인)

https://wikidocs.net/21049

 

01_파일, 디렉터리 관리하기

파이썬의 장점 중 하나는 일률적인 업무를 돕는 프로그램을 쉽게 만들 수 있다는 점이다. 이런 것이 가능한 이유는 파일과 디렉터리를 쉽게 관리할 수 있기 때문이다. 파일, 디렉터…

wikidocs.net

 

댓글