Python實戰(zhàn)之能監(jiān)控文件變化的神器-看門狗_第1頁
Python實戰(zhàn)之能監(jiān)控文件變化的神器-看門狗_第2頁
Python實戰(zhàn)之能監(jiān)控文件變化的神器-看門狗_第3頁
Python實戰(zhàn)之能監(jiān)控文件變化的神器-看門狗_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第Python實戰(zhàn)之能監(jiān)控文件變化的神器—看門狗目錄一、前言二、準備三、基本使用四、監(jiān)控文件變化

一、前言

假設現(xiàn)在有一個應用場景,需要對文件系統(tǒng)進行監(jiān)控,發(fā)生變化時產生日志,對新增的文件做一些相應的操作。

比如說應用到我們之前的音樂高潮提取器:若當前文件夾下增加了一個音樂文件,監(jiān)控器就調用音樂高潮提取器,自動提取該音樂文件的高潮部分。

這樣的監(jiān)控器寫起來也不難,但是很花時間,有許多情況要考慮。不過幸好我們是寫Python的,有許多輪子可以使用。

二、準備

開始之前,你要確保Python和pip已經成功安裝在電腦上噢。

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

當然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端運行命令安裝依賴模塊,多舒服的一件事啊。

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

pipinstallwatchdog

看到Successfullyinstalledxxx則說明安裝成功。

三、基本使用

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

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

1.配置各項信息;

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

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

4:啟動。

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

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

pythonobserber.py/data/home/ckend/

我們來試著運行看看:

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

四、監(jiān)控文件變化

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

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

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

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

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

成功監(jiān)控文件變化并提取到音樂高潮,生成高潮文件。這樣,只要你保持這個Python進程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論