python中可以使用watchdog来监控目录文件的变化,但是如何停止监控呢?

下边这段代码可以点击按钮可以开始监控D:\HtmlTemp目录下文件的变化,但是为啥点程序就无法操作了?如何才能实现随时可以停止监控的功能呢?

# _*_ coding:UTF-8 _*_
from PySide2.QtWidgets import QApplication,QMessageBox
from PySide2.QtUiTools import QUiLoader
from pynput.mouse import Button, Controller
from watchdog.observers import Observer
from watchdog.events import *
import time
import os
import shutil

class Zsfz:
    def __init__(self):
        self.ui=QUiLoader().load('ui/testfilemonitor.ui')
        self.ui.btnstart.clicked.connect(self.start)

    def start(self):
        class MyHandler(FileSystemEventHandler):
            def on_modified(self, event):
                print("文件被修改了 %s" % event.src_path)

            def on_created(self, event):
                print("文件被创建了 %s" % event.src_path)

        a = r"D:\HtmlTemp"
        path = a
        event_handler = MyHandler()
        observer = Observer()
        observer.schedule(event_handler, path, recursive=True)
        observer.start()

        try:
            while True:
                time.sleep(1)

        except KeyboardInterrupt:
            observer.stop()
        observer.join()
app=QApplication([])
zsfz=Zsfz()
zsfz.ui.show()
app.exec_()
讨论数量: 2
Jason990420

要停止程序,请按Control-C

    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()
observer.stop() # 发出线程停止信号
observer.join() # 等待线程终止
3年前 评论

首先感谢Jason990420的回复。 windows的图形界面按ctrl-c有效吗? 如果想在实现一个按钮开始监控,一个按钮停止监控,应该如何写代码?

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!