阻止,直到目录中的文件发生更改

2024-05-08 03:52:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用看门狗来阻止,直到一个目录中的文件更改。我所做的是在变量为False时休眠。不过,问题是我不能中断睡眠;当文件更改时,仍有最多1s的延迟要中断。我怎样才能从睡梦中解脱出来,在睡后继续坚持到底呢?或者更一般地说,阻止直到文件更改?这是我的密码:

import sys
import time
import os
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

if __name__ == "__main__":
  observer = Observer()

  def nothing():
    pass

  class FileChangeHandler(FileSystemEventHandler):
    done = False

    def on_any_event(self, event):
      print 'Got event'
      FileChangeHandler.done = True

  path = sys.argv[1] if len(sys.argv) > 1 else '.'
  event_handler = FileChangeHandler()
  observer.schedule(event_handler, path, recursive=True)
  observer.start()

  while not event_handler.done:
    time.sleep(1)

  print 'Done'

  observer.stop()
  observer.join()

Tags: 文件fromimporteventfalseiftimesys