為防止log日誌過大,每隔一小時就會把重新寫log檔案,而之間的檔案則重新命名為server_errors.log.yyyy-dd-mm-nn,其中nn為序號,從00到23.
鑑於我們log的基本形式,我們要分析的不僅僅是errors.log,還需要分析其他當天產生的檔案,這就需要乙個方法去取得這些檔案的列表。
開始的時候,準備通過glob模組來取得檔案列表,glob根據給定模式生成滿足該模式的檔名列表, 和 unix shell 相同.
for eachfile in glob.glob(r"d:\log\*.log"):
print eachfile
注意glob返回完整路徑名, 這點和os.listdir函式不同。
但是glob的不是正則,是unixshell的規則。除了*,?,之外,其他的正規表示式不能用。
於是只能另起爐灶,這次使用的是os.listdir,
因為這些檔案都是以相同的名字開頭,可以使用startswith方法進行過濾,然後通過檔案的建立時間來取得今天產生的log檔案列表
Python處理日誌之取得檔案列表 更新
在這篇文章裡面講述了如何通過glob模組取得列表,但由於glob能使用的正規表示式有限,所以只能說是完成了部分任務,今天看 python技術參考大全 受到啟發,我們可以使用正規表示式去檢查每個檔名,這樣就可以找到所需的檔案列表。filelist pattern r seeuthere errors....
Python處理日誌之取得檔案列表 更新
在這篇文章裡面講述了如何通過glob模組取得列表,但由於glob能使用的正規表示式有限,所以只能說是完成了部分任務,今天看 python技術參考大全 受到啟發,我們可以使用正規表示式去檢查每個檔名,這樣就可以找到所需的檔案列表。filelist pattern r seeuthere errors....
python處理大日誌檔案
coding utf 8 import sys import time class tail def init self,file name,callback sys.stdout.write self.file name file name self.callback callback def f...