看門狗是一種守護進程,在程序掛掉的情況下會自動重啟程序。Python 中的看門狗模塊是 watchdog。它可以監(jiān)控目錄的變化、文件的變化等操作,當有變化發(fā)生時就會啟動相應的處理程序。
import sys
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
print(f"文件或目錄{event.src_path}被修改")
if __name__ == "__main__":
path = sys.argv[1] if len(sys.argv) >1 else '.'
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
上面的代碼是一個簡單的 Python 看門狗程序,它可以監(jiān)控文件系統(tǒng)的變化并輸出相關信息。當文件系統(tǒng)發(fā)生變化時,程序不會退出,而是繼續(xù)監(jiān)控,等待下一個變化。
如果需要監(jiān)控某個目錄下的所有文件,可以將 path 的默認值 "." 修改為相應的目錄路徑。
Python 看門狗程序可以應用于很多場景,如監(jiān)控日志文件、監(jiān)控配置文件等。它可以有效地保障程序的穩(wěn)定運行。