最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用watchdog實時監(jiān)測文件或文件夾的更改

 更新時間:2026年03月10日 09:22:08   作者:mahuifa  
這篇文章主要介紹了如何使用Python的watchdog庫來實時監(jiān)控文件和文件夾的創(chuàng)建、修改、刪除操作,實現(xiàn)熱重載機制和其他應用場景,需要的朋友可以參考下

1 概述

  • python實現(xiàn)實時監(jiān)控文件的創(chuàng)建、修改、刪除操作
  • 跟蹤文件夾內(nèi)容的增刪改變化
  • 可用于文件發(fā)生變化時自動觸發(fā)相應處理邏輯
  • 實現(xiàn)熱重載機制,如配置文件更新后自動重新加載

基于watchdog 實現(xiàn);

  • watchdog 是一個用于監(jiān)控文件系統(tǒng)事件的 Python 庫,它能夠監(jiān)聽文件或目錄的變化,如創(chuàng)建、修改、刪除和移動等操作。這個庫在需要實時響應文件系統(tǒng)變化的場景中非常有用,比如自動構建系統(tǒng)、日志監(jiān)控、文件同步工具等。
  • 主要組件
    • Observer:觀察者對象,負責監(jiān)控指定路徑的文件系統(tǒng)事件。它會持續(xù)運行一個后臺線程來監(jiān)聽事件。
    • FileSystemEventHandler:事件處理器基類,用戶需要繼承這個類并重寫相應的事件處理方法來定義對特定事件的響應。
    • Event:事件對象,代表一個具體的文件系統(tǒng)事件,包含了事件類型和相關文件路徑等信息。

典型應用場景

  1. 開發(fā)工具
    • 代碼編輯器監(jiān)聽源文件變化實現(xiàn)自動刷新
    • 構建工具監(jiān)聽源碼變更觸發(fā)重新編譯
  2. 文件同步服務
    • 監(jiān)控本地文件夾變化同步到云端
    • 實現(xiàn)文件實時備份功能
  3. 系統(tǒng)管理
    • 監(jiān)控配置文件變化并動態(tài)調(diào)整程序行為
    • 跟蹤重要目錄的安全變更記錄

2 安裝watchdog

  • 使用命令行pip install watchdog進行安裝;
pip install watchdog

3 使用示例

監(jiān)測文件夾更改

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}")
    def on_created(self, event):
        print(f"文件被創(chuàng)建: {event.src_path}")
    def on_deleted(self, event):
        print(f"文件被刪除: {event.src_path}")

if __name__ == "__main__":
    path = "./"
    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()

監(jiān)測指定文件更改

import time
import os
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class MyHandler(FileSystemEventHandler):
    def __init__(self, target_file):
        self.target_file = os.path.abspath(target_file)
        self.last_modified = 0

    def dispatch(self, event):
        if os.path.abspath(event.src_path) == self.target_file:
            super().dispatch(event)

    def on_modified(self, event):
        now = time.time()
        # 1秒內(nèi)只響應一次
        if now - self.last_modified > 1:
            print(f"文件被修改: {event.src_path}")
            self.last_modified = now

    def on_created(self, event):
        print(f"文件被創(chuàng)建: {event.src_path}")

    def on_deleted(self, event):
        print(f"文件被刪除: {event.src_path}")

if __name__ == "__main__":
    target_file = "test.txt"
    path = os.path.dirname(os.path.abspath(target_file)) or "."
    event_handler = MyHandler(target_file)
    observer = Observer()
    observer.schedule(event_handler, path, recursive=False)
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()
  • 因為許多編輯器(如 VS Code、Notepad++ 等)在保存文件時,可能會執(zhí)行多步操作(如寫入臨時文件、替換原文件、修改元數(shù)據(jù)等),導致 watchdog 檢測到多次文件系統(tǒng)事件
  • 事件去抖動(防抖):在短時間內(nèi)多次事件只處理一次。

到此這篇關于Python使用watchdog實時監(jiān)測文件或文件夾更改的文章就介紹到這了,更多相關Python watchdog監(jiān)測文件/文件夾更改內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python三大器之裝飾器詳解

    python三大器之裝飾器詳解

    這篇文章主要介紹了Python中的裝飾器,涉及到Python中很多重要的特性,小編覺得這篇文章寫的還不錯,需要的朋友可以參考下
    2021-10-10
  • Python使用tablib生成excel文件的簡單實現(xiàn)方法

    Python使用tablib生成excel文件的簡單實現(xiàn)方法

    這篇文章主要介紹了Python使用tablib生成excel文件的方法,結合實例形式分析了tablib模塊的相關使用技巧,需要的朋友可以參考下
    2016-03-03
  • Python處理JSON的完全指南:從基礎到實戰(zhàn),掌握數(shù)據(jù)交換核心技能

    Python處理JSON的完全指南:從基礎到實戰(zhàn),掌握數(shù)據(jù)交換核心技能

    本文將從?JSON?與?Python?的類型映射講起,帶你理解序列化與反序列化的底層邏輯,然后通過實戰(zhàn)案例演示如何解析?API?數(shù)據(jù)、處理自定義對象,最后總結出?3?個避坑技巧
    2026-06-06
  • 詳解Python打包分發(fā)工具setuptools

    詳解Python打包分發(fā)工具setuptools

    這篇文章主要介紹了Python打包分發(fā)工具setuptools的相關知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Python 手動導包的實現(xiàn)

    Python 手動導包的實現(xiàn)

    本文主要介紹了Python 手動導包的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 使用Python繪制詞云圖的詳細教程

    使用Python繪制詞云圖的詳細教程

    詞云(Word Cloud)是一種數(shù)據(jù)可視化技術,用于顯示文本數(shù)據(jù)中的頻繁單詞,在本教程中,我們將使用 Python 的 wordcloud 庫,結合 matplotlib 和 jieba 等工具,展示如何從文本數(shù)據(jù)生成詞云圖,需要的朋友可以參考下
    2025-01-01
  • python?subprocess.run中的具體使用

    python?subprocess.run中的具體使用

    subprocess.run是Python3.5及以上版本中用于運行子進程的函數(shù),它提供了更簡單和更強大的方式來創(chuàng)建和管理子進程,本文就來詳細的介紹一下,感興趣的可以了解一下
    2025-01-01
  • Python環(huán)境Pillow( PIL )圖像處理工具使用解析

    Python環(huán)境Pillow( PIL )圖像處理工具使用解析

    這篇文章主要介紹了Python環(huán)境Pillow( PIL )圖像處理工具使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • python 爬取學信網(wǎng)登錄頁面的例子

    python 爬取學信網(wǎng)登錄頁面的例子

    今天小編就為大家分享一篇python 爬取學信網(wǎng)登錄頁面的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python中時間模塊的基本使用教程

    python中時間模塊的基本使用教程

    這篇文章主要給大家介紹了關于python中時間模塊的基本使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05

最新評論

泗水县| 小金县| 盘锦市| 阜城县| 绍兴县| 桐城市| 乌鲁木齐市| 通化市| 南漳县| 句容市| 淳化县| 定日县| 常熟市| 贵阳市| 阿勒泰市| 济源市| 平度市| 栾城县| 聂拉木县| 富源县| 怀柔区| 滦平县| 绿春县| 兴山县| 万荣县| 高邮市| 永顺县| 连山| 鄂托克前旗| 阿合奇县| 阆中市| 林州市| 云林县| 宁陵县| 五原县| 石楼县| 珲春市| 绥芬河市| 文成县| 玉溪市| 安国市|