Python에서 파일 변경 모니터링
이 문서에서는 변경 사항에 대해 로그 파일을 모니터링하고 처리를 위해 업데이트된 데이터를 읽는 문제를 다룹니다. 원래 질문은 잠재적으로 PyWin32를 사용하여 비폴링 솔루션을 찾고자 하는 욕구를 표현했습니다.
이 목적을 위해 Python 라이브러리 Watchdog은 유망한 솔루션을 제공합니다. Watchdog은 여러 플랫폼에서 파일 시스템 이벤트를 모니터링하도록 설계되었습니다. 개발자가 파일이 수정되거나 생성될 때 특정 작업을 수행하도록 사용자 정의 이벤트 핸들러를 정의할 수 있는 API를 제공합니다.
Watchdog을 사용하면 간단한 이벤트 핸들러를 설정하여 특정 로그 파일을 감시하고 해당 내용을 읽을 수 있습니다. 어떤 변화라도 있을 때. 예는 다음과 같습니다.
import watchdog.observers as observers import watchdog.events as events class FileEventHandler(events.FileSystemEventHandler): def on_modified(self, path, event): with open(path, 'r') as f: data = f.read() # Process the new data here # Path to the log file log_path = '/path/to/log.txt' # Create the file handler handler = FileEventHandler() # Create the observer and schedule the log file for monitoring observer = observers.Observer() observer.schedule(handler, log_path, recursive=False) # Start the observer observer.start() # Blocking code to keep the observer running observer.join()
이 설정을 사용하면 로그 파일을 수정하면 on_modified 메서드가 트리거되어 새 데이터를 읽고 처리합니다. Watchdog은 파일 변경 사항을 모니터링하는 안정적이고 효율적인 방법을 제공함으로써 폴링의 필요성을 완화하고 이 특정 요구 사항에 대한 실용적인 솔루션을 제공합니다.
위 내용은 폴링 없이 Python에서 로그 파일 변경 사항을 효율적으로 모니터링하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!