python看门狗跟踪来自另一个进程的单个文件更改在检测到更改时失败

python看门狗跟踪来自另一个进程的单个文件更改在检测到更改时失败,python,watchdog,Python,Watchdog,我有一个Rust中的代码,它将数据附加到文件中,我想使用Python跟踪文件何时被更改/扩展以将其存储到数据框中进行打印。下面是试图观察更改并将其存储到数据帧中的Python代码 import logging import os.path import time import pandas as pd from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler clas

我有一个Rust中的代码,它将数据附加到文件中,我想使用Python跟踪文件何时被更改/扩展以将其存储到数据框中进行打印。下面是试图观察更改并将其存储到数据帧中的Python代码

import logging
import os.path
import time

import pandas as pd
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler


class Handler(LoggingEventHandler):
    file2track = "data.csv"
    data = pd.DataFrame()

    def on_any_event(self, event):
        self.data.append(pd.read_csv(self.file2track, skiprows=len(self.data)))
        print("Changed!")


if __name__ == '__main__':
    logging.basicConfig(level=logging.INFO,
                        format='%(asctime)s - %(message)s',
                        datefmt='%Y-%m-%d %H:%M:%S')

    event_handler = Handler()
    observer = Observer()

    observer.schedule(event_handler, event_handler.file2track, recursive=True)

    observer.start()

    try:
        while True:
            time.sleep(1)
            print("looping")
    except KeyboardInterrupt:
        observer.stop()
    observer.join()
我不明白为什么,但on_any_事件只在开始时被调用,然后在循环中被忽略,即使文件已更改。我尝试了其他事件(在修改、删除和创建时),但始终无法识别更改

这个文件保持相同的名称,所以我想知道看门狗是否没有检测到文件因此而不同!我不太理解文档中的内容,不知道文件被更改意味着什么。是日期、名称、文件大小。。。?有人发现了吗? 谢谢