1

当我在 Spyder IDE 中运行以下脚本FileModifiedEvent时,只要修改了受监视文件夹中的文件,看门狗就会触发两个,而不是一个。脚本是通过 iPython 运行还是在常规控制台中运行都没有关系。从命令提示符执行脚本时不会出现该问题,因此该问题必须与 Spyder 有关。

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

monitored_folder = 'D:\\Users\\myuser\\Desktop\\test'

class FolderMonitor(FileSystemEventHandler):
    def on_any_event(self, event):
        print(event)

observer = Observer()
observer.schedule(FolderMonitor(), monitored_folder)    
observer.start()
try:
    while True:
        import time
        time.sleep(1)
except KeyboardInterrupt:
    observer.stop()
observer.join()

在 spyder 内部,输出为:

<FileModifiedEvent: src_path='D:\\Users\\myuser\\Desktop\\test\\test.txt'>
<FileModifiedEvent: src_path='D:\\Users\\myuser\\Desktop\\test\\test.txt'>

通过命令提示符,输出为:

<FileModifiedEvent: src_path='D:\\Users\\camposb\\Desktop\\test\\test.txt'>

该代码正在使用 Python 3.5.1 和 Spyder 2.3.8 的 Windows 7 中执行。

4

0 回答 0