Python中怎么監(jiān)控文件變化

今天就跟大家聊聊有關Python中怎么監(jiān)控文件變化,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設計、成都網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務柳河,十年網(wǎng)站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575

1.準備

開始之前,你要確保Python和pip已經成功安裝在電腦上噢,如果沒有,請訪問這篇文章:超詳細Python安裝指南 進行安裝。如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda

Windows環(huán)境下打開Cmd(開始—運行—CMD),蘋果系統(tǒng)環(huán)境下請打開Terminal(command+空格輸入Terminal),準備開始輸入命令安裝依賴。

當然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端運行命令安裝依賴模塊,多舒服的一件事啊:Python 編程的最好搭檔—VSCode 詳細指南。

在終端輸入以下命令安裝我們所需要的依賴模塊:

pip install watchdog


看到 Successfully installed xxx 則說明安裝成功。

2.基本使用

看門狗的使用并不復雜,請認真看以下代碼和注釋:

Python中怎么監(jiān)控文件變化

可以看到代碼中有幾個關鍵步驟,

1.配置各項信息;

2.生成事件處理器、監(jiān)控器;

3.注冊事件處理器、配置目錄、遞歸執(zhí)行(即同時監(jiān)控子文件夾);

4:啟動。

其實,看門狗的observer是基于 threading.Thread 對象的,所以observer很多屬性都繼承了 threading.Thread 的屬性。

如果你不帶參數(shù)地運行該腳本,就是要監(jiān)控腳本文件所在的文件夾,如果要監(jiān)控其他文件夾,記得運行時帶文件夾的路徑參數(shù),如:

python obserber.py /data/home/ckend/

我們來試著運行看看:

Python中怎么監(jiān)控文件變化


可以看到,我在當前文件夾下做的所有操作都被記錄下來了。接下來我們就試試怎么自定義一些操作。

3.監(jiān)控文件變化

如果你不知道怎么提取音樂文件的高潮部分,請看這篇文章:《Python自動提取音樂文件高潮》。

要實現(xiàn)這樣的功能,我們有幾種方法,一個是在原來log的處理器上做一些新增修改,比如多增一個函數(shù)調用音樂高潮提取器。第二個是重新繼承 FileSystemEventHandler 類,并做相應的修改。這里我們還是要保留log的樣式,只是在log的時候順便提取音樂高潮,因此采用第一個方法。

看看LoggingEventHandler源代碼中的on_created,這就是當文件創(chuàng)建時監(jiān)控器的操作:

Python中怎么監(jiān)控文件變化


我們僅需要繼承這個類并對on_created進行修改,就能完成我們想要的功能:

Python中怎么監(jiān)控文件變化

首先聲明一個類,繼承LoggingEventHandler,然后重載on_created函數(shù),在這個函數(shù)中不僅記錄文件事件變化,還要對mp3文件做一次音樂高潮提取。最后別忘了,生成事件處理器時要用我們新的類名。

看看效果,將小永遠.mp3復制過來:

Python中怎么監(jiān)控文件變化

看完上述內容,你們對Python中怎么監(jiān)控文件變化有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

當前文章:Python中怎么監(jiān)控文件變化
分享網(wǎng)址:http://bm7419.com/article4/igocoe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內鏈、App設計標簽優(yōu)化、網(wǎng)站收錄網(wǎng)頁設計公司、關鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司