如何解决python看门狗跟踪来自另一个进程的单个文件更改在检测到更改时失败
我在 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_event 只在开始时被调用,然后即使文件已更改,也会在循环中被绕过。我尝试了其他事件(on_modified、on_deleted 和 on_created),但始终无法识别更改。
这个文件保持相同的名称,所以我想知道看门狗是否因此没有检测到文件不同!我不太了解文档更改文件的含义。是日期、名称、文件大小……?有没有人想过这个? 谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。