2010-07-15 2 views
1

디렉토리를 보려고하는데 파일 수정을 원합니다. pyinotify 사용을 생각합니다. 문제는 IN_MODIFY 이벤트를 사용하여 파일 변경을 확인하는 동안 네트워크를 통해 디렉토리에 12MB 정도의 작은 파일을 복사하는 경우 상당히 많은 이벤트를 트리거한다는 것입니다.pyinotify : IN_MODIFY 트리거 처리

너무 많은 트리거를 처리하고 싶지 않습니다. 파일을 복사 한 후 단일 이벤트 만 트리거하려고합니다. 어떻게해야합니까?

모든 Pyinotify 지도자는

+0

당신은 확인해야합니다 [pyinotify에서이 문제] (https://github.com/seb-m/pyinotify/issues/45). IN_MODIFY 이벤트는 변경 사항이 파일에 기록되는 방식에 크게 영향을받습니다 (예 :'nano'는 2 개의 IN_MODIFY 이벤트를 트리거하고'sublime-text'는 어떤 이벤트도 발생시키지 않습니다) –

답변

2

IN_CLOSE_WRITEIN_MODIFY을 변경하려고 할 수 있습니다. 쓰기 가능한 파일이 닫히면 IN_CLOSE_WRITE 이벤트가 발생합니다. 파일을 복사하는 프로그램이 파일을 여러 번 닫지 않는 한 한 번만 발생해야합니다.

위의 변경 사항만으로 충분할 수 있지만 그렇지 않은 경우 this basic code 은 어떤 이벤트가 발생했는지 확인하는 데 매우 유용한 도구가 될 수 있습니다. 이를 사용하여 어떤 이벤트를 사용할지를 결정할 수 있어야합니다.


# Example: loops monitoring events forever. 
# 
import pyinotify 

# Instanciate a new WatchManager (will be used to store watches). 
wm = pyinotify.WatchManager() 
# Associate this WatchManager with a Notifier (will be used to report and 
# process events). 
notifier = pyinotify.Notifier(wm) 
# Add a new watch on /tmp for ALL_EVENTS. 
wm.add_watch('/tmp', pyinotify.ALL_EVENTS) 
# Loop forever and handle events. 
notifier.loop() 
+0

주어진 링크가 더 이상 작동하지 않습니다 – Ajoy

+0

@Ajoy : Thanks 통지. 링크가 수정되었으며 위에 코드가 복제되었습니다. – unutbu