상황
- 2가지의 딥러닝 프로그램을 연결하는 과정에서 첫번째 프로그램의 결과로 파일이 생성되면, 파일이 생성되었다는 사실을 인지하여 해당 파일을 Input으로 두번째 프로그램이 돌 수 있도록 설계하는 것이 필요했다.
- 그러기 위해서 필요한 것이 Agent 개념인데 Agent(대리인)는 넓게 보자면 프로그램 속에서 사람이 해야하는 일을 대신 해주는 시스템을 말한다.
- 고로 이번 Task에서 내가 필요한 Agent의 역할 : "특정 폴더에 파일이 생성되는 것을 감지하고, 파일이 생성되었다면 프로그램 2를 실행하여라"
해결 방안
- 해당 Agent 역할에 맞는 Python 패키지로는 WatchDog이 있다.
- WatchDog은 특정 폴더에 파일이 생성되거나 삭제될 때마다 정해진 명령어를 실행할 수 있게 도와주는 패키지이다.
https://pypi.org/project/watchdog/
- FileSystemEventHandler를 상속받는 Class 생성
- on_moved : 파일, 디렉토리가 이동하거나 이름이 바뀔 때 실행
- on_created : 파일, 디렉토리가 생성되면 실행
- on_deleted : 파일, 디렉토리가 삭제되면 실행
- on_modified : 파일, 디렉토리가 수정되면 실행
- Observer 객체 생성
- Observer 객체에 감시할 디렉토리 경로를 주고 시작함
- schedule : 지정된 경로를 모니터링하고 파일 시스템의 변경 사항을 감지하기 시작함
- join : Observer가 모든 이벤트 처리를 마칠 때까지 대기한 후 프로그램을 종료
특징
- 일반적으로 time.sleep()을 걸어서 n초마다 한번씩 디렉토리를 검사하게 끔 구성
진행 사항
- FastAPI를 연동하여 백엔드 작업 코드 설계 진행
참고자료 (예시 코드 확인)
'프로그래밍 > Python' 카테고리의 다른 글
[Python] enum 타입 사용하기 (0) | 2024.02.07 |
---|---|
[Python] Python으로 휴대폰 캠을 웹캠으로 사용해보자 (0) | 2024.01.14 |
[Python] '문자+숫자'로 구성된 파일명 정렬하기 (0) | 2023.01.14 |
댓글