Python監控文件改動
在開發過程中,我們經常需要知道文件何時被修改、誰修改了它,以及它的內容是什么。這個任務用Python很容易就可以實現。本文將介紹如何使用Python監控文件改動。
相信大家都知道,Python是一種高級語言,可以快速輕松地實現這個任務。我們需要用到三個模塊:
import os import time import logging
接下來,我們需要定義一個監控函數。這個函數需要接收三個參數:文件名、等待時間和一個日志對象,然后它會進入一個永久循環。在每個循環中,它將檢測文件是否被修改。如果被修改了,它將記錄下來,并調用日志對象的相應函數輸出日志信息。在檢測完畢之后,函數將暫停指定的等待時間,然后再進行下一次循環。
def monitoring_file_changes(filename, wait_time, log): filesize_last = os.path.getsize(filename) # 文件大小 file_modified_last = os.path.getmtime(filename) # 上一次修改時間 while True: time.sleep(wait_time) filesize_current = os.path.getsize(filename) file_modified_current = os.path.getmtime(filename) if filesize_current != filesize_last or file_modified_current != file_modified_last: log.info('File %s was modified at %s', filename, time.time()) filesize_last = filesize_current file_modified_last = file_modified_current
現在,我們已經定義了監控函數。接下來,我們需要創建一個日志對象來輸出我們的日志信息。這個日志對象支持多種格式,包括文本、XML和HTML等等。我們可以使用logging模塊創建一個日志對象,并指定其格式。
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') log = logging.getLogger()
接下來,我們可以調用監控函數,來監控我們感興趣的文件。
monitoring_file_changes('test.txt', 1.0, log)
在上面這個例子中,我們會每隔一秒鐘檢查一次test.txt文件的狀態。
我們可以嘗試修改該文件,看看我們的監控函數是否能夠捕捉到這個操作。
當我們修改文件的內容時,程序會輸出一條日志信息,說明文件已經被修改了。
這就是一個簡單的Python文件監控程序,它可以用來監控你感興趣的文件是否被修改了。這個程序相當可靠,而且功能強大,在開發過程中非常有用。