파이썬에서 파일 변경 사항을 모니터링하는 방법
Python에서 파일 변경을 모니터링하는 방법.
Python에서 watchdog 라이브러리를 사용하여 파일 변경을 모니터링하는 방법에 대한 단계별 튜토리얼입니다:
단계 1 : watchdog 라이브러리 설치
시작하기 전에 watchdog 라이브러리가 설치되어 있는지 확인하세요. 다음 명령을 실행하여 pip를 사용하여 설치할 수 있습니다:
pip install watchdog
단계 2 : 필요한 모듈 가져오기
시작하기 위해 watchdog 라이브러리와 다른 필요한 라이브러리에서 필요한 모듈을 가져옵니다:
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
단계 3 : 사용자 정의 이벤트 핸들러 생성
그다음, FileSystemEventHandler를 상속하는 사용자 정의 이벤트 핸들러 클래스를 생성하세요. 이 클래스는 파일 생성, 수정 또는 삭제와 같은 특정 이벤트가 발생했을 때의 동작을 정의합니다:
class MyHandler(FileSystemEventHandler):
def on_any_event(self, event):
# 이 메서드는 파일 변경 이벤트가 발생할 때 호출됩니다
if event.is_directory:
return
if event.event_type == 'created':
print(f"파일이 생성되었습니다: {event.src_path}")
elif event.event_type == 'modified':
print(f"파일이 수정되었습니다: {event.src_path}")
elif event.event_type == 'deleted':
print(f"파일이 삭제되었습니다: {event.src_path}")
위의 예시에서는 파일 생성, 수정 및 삭제 세 가지 유형의 이벤트에 대한 동작을 정의했습니다. 특정 요구 사항에 기반하여 이 로직을 사용자 정의할 수 있습니다.
단계 4 : 옵저버 생성 및 모니터링 시작
이제 Observer 클래스의 인스턴스를 생성하고 이벤트 핸들러를 연결하세요. 그런 다음, 모니터링하려는 디렉토리 또는 파일을 지정하세요:
if __name__ == "__main__":
event_handler = MyHandler()
observer = Observer()
path = '/path/to/directory' # 원하는 디렉토리 또는 파일 경로로 대체하세요
observer.schedule(event_handler, path, recursive=True)
observer.start()
'/path/to/directory'를 실제 디렉토리 또는 파일 경로로 대체해야 합니다. recursive=True를 설정하면 모든 하위 디렉토리도 모니터링할 수 있습니다.
단계 5 : 프로그램 실행 유지
프로그램을 실행한 상태로 유지하고 파일 변경을 계속 모니터링하기 위해 무한 루프를 추가하세요:
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
이 루프는 프로그램이 즉시 종료되지 않고 파일 변경을 계속 모니터링할 수 있도록 합니다. 프로그램을 중지하려면 Ctrl + C를 누르세요.
단계 6 : 코드 실행
Python 스크립트를 저장하고 Python 인터프리터를 사용하여 실행하세요. 이제 지정한 디렉토리 또는 파일이 변경될 때 프로그램이 모니터링되는 것을 확인할 수 있습니다. 파일이 생성, 수정 또는 삭제될 때 해당 메시지가 콘솔에 출력됩니다.
이것으로 Python에서 watchdog 라이브러리를 사용하여 파일 변경 모니터링을 성공적으로 구현했습니다. 특정 요구 사항에 따라 이벤트 핸들러 로직을 수정할 수 있습니다.