我在Python
中使用watchdog
来实时监控何时创建或删除文件。
以下示例,我尝试了以下内容:
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_created(self, event):
print("File is created!")
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path='C:/daten/dog.txt', recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
当然,当此脚本开始运行时,文件path='C:/daten/dog.txt'
不存在。但我仍然收到错误消息
FileNotFoundError: [WinError 2] The system cannot find the file specified.
为什么它告诉我它找不到首先指定的文件。毕竟,我需要它运行来监视文件的创建。
更新:现在我明白watchdog
用于监视文件夹而不是文件。
是否有类似的包用于监视文件,或者只是通过将while
语句和sleep
语句放在一起来做得更好?
为什么它告诉我它找不到首先指定的文件。
因为你给看门狗的路径是它连接自己来监听事件的地方。
您不能观看文件并期望记录其创建事件。文件创建事件发布在父目录中,因此这是您应该关注的内容。
事实上,我不知道观看特定文件对看门狗有什么意义,它的标语是
目录监控变得容易