当我在 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 中执行。