我想知道如何检查文件夹下特定文件的更改。我发现watchdog模块可以检查文件夹中文件的更改,但我只需要一个文件(固定名称)。
请帮忙,谢谢。
class MyHandler(FileModifiedEvent):
def on_modified(self, event):
if __name__ == "__main__":
integrity_file_path = DATASTORE_DIRECTORY_PATH + '/schedule.xml'
event_handler = MyHandler()
observer = Observer()
observer.schedule(MyHandler(), path=integrity_file_path,recursive=True)
observer.start()
try:
while True:
time.sleep(5)
except keyboardInterrupt:
observer.stop()
observer.join()
您可以对watchdog.events.PatternMatchingEventHandler事件处理程序进行子类化,并对其进行修改,以便在发生事件时执行所需的任何操作。 您可以将模式设置为要监视的文件名。
不过,这个有点棘手。在封面下,它使用pathtools.patterns进行模式匹配。 它还将目录附加到要匹配的模式。这意味着您需要将文件的完整路径作为filename“pattern”参数传递给事件处理程序。 如果不这样做,则模式匹配将失败,并且不会收到任何事件通知。
下面是一个例子:
执行watchdog python脚本(在修改文件之前):
在单独的控制台中修改schedule.xml文件:
修改schedule.xml后的结果:
我想你可以根据
How to get file creation & modification date/times in Python?
定义一个阈值并将当前时间与修改时间进行比较,可以知道文件是否已更新。如果不经常修改文件,这将起作用。
但不管怎样,如果有人打开文件,输入一些垃圾,然后删除并保存,就会出现错误警报。
相关问题 更多 >
编程相关推荐