有没有方法显示文件变化(例如使用pyinotify)?

2 投票
1 回答
1459 浏览
提问于 2025-04-18 17:34

有没有办法打印出被监控文件的修改内容呢?我们来举个例子:我在监控一个叫file.txt的文件,Pyinotify可以告诉我这个文件被修改了,但似乎不能输出具体发生了什么变化?我是不是理解错了?

我该如何查看我正在监控的文件有哪些具体的修改呢?

非常感谢,抱歉我的英语不好。

1 个回答

2

inotify机制不会把变化的内容直接放在事件里,因为它应该在保存文件之前计算这些变化,而这样做可能会影响性能,因为通常情况下并不需要这些信息。

你可以尝试以下方法:

  • 先从 file.txt 读取数据,并把它存到一个变量里(如果需要长期保存,可以存到另一个文件)。

  • 使用 pyinotifywatchdog 来监听文件的变化事件。

  • 当事件被触发时,使用 difflib 来检查你之前存储的快照和当前文件数据之间的变化。

撰写回答