[Python] 특정 폴더의 변경 유무 감시하기 Develop Tip

파이썬으로 특정 폴더를 모니터링 하는 간단한 코드입니다.

다음과 같은 제약사항이 있기는 하지만,
그것을 만족한다면 아주 작은 코드로 파일 변화를 감시할 수 있습니다.

1) 감시 폴더는 이미 존재하고 있고, 중간에 삭제되지 않는다. (예제에서는 "/tmp/foo")
2) 감시 폴더에 새로운 파일(서브폴더)이 생성되거나 변화가 있을 때 감시 핸들러가 작동한다.
3) 특정 파일(서브폴더)이 삭제되었을 경우에는 감시 핸들러가 동작하지 않는다.
4) *NIX 시스템에서 동작합니다. (윈도우에서 불가)


import time
import fcntl
import os
import signal

FNAME = "/tmp/foo"

def handler(signum, frame):
print "Some file(s) in %s modified" % (FNAME,)

signal.signal(signal.SIGIO, handler)
fd = os.open(FNAME,  os.O_RDONLY)
fcntl.fcntl(fd, fcntl.F_SETSIG, 0)
fcntl.fcntl(fd, fcntl.F_NOTIFY, fcntl.DN_MODIFY | fcntl.DN_CREATE | fcntl.DN_MULTISHOT)

while True:
time.sleep(1000)


어느분께는 도움이 되셨기를...

덧글

  • 기안대 2018/05/19 14:22 # 삭제 답글

    정말 감사합니다 ㅠ.ㅠ
    딱 찾던 소스였고, 잘 사용됩니다. 감사합니다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • 지훈현서아빠 2018/05/21 10:28 #

    도움이 되셨다니 저의 보람입니다~ ^^
  • point 2020/06/26 20:34 # 삭제 답글

    good~
댓글 입력 영역

구글애드텍스트