【发布时间】:2021-10-16 19:30:03
【问题描述】:
下面的python代码是我第一次尝试在文件被修改时通知,但是当文件被更改时没有任何反应。
我在这里错过了什么?
#!/usr/bin/python3
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
print('file changed')
if __name__ == "__main__":
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path='/Users/jeff/smb/storage/wsjt-x/wsjtx_log.adi', recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
注意:我发现这段代码在 Linux 上运行良好。它在我遇到问题的 macOS Big Sur 上。
【问题讨论】:
-
相反,您在运行时是否遇到任何错误?对我来说它有效,我在运行时向我观察到的文件添加一行时调用了打印处理程序。
-
没有错误。我运行脚本并在另一个 shell 中对观察到的文件进行更改,但从未调用 print 语句。
-
注意:我发现这段代码在 Linux 上运行良好。它在我遇到问题的 macOS Big Sur 上。
-
这是您的问题的stackoverflow.com/a/17586617/15978922 awnser 吗?
-
不,仍然没有快乐。