python按關鍵字篩選日誌檔案

2021-08-28 03:38:25 字數 1669 閱讀 8363

最近忙成了狗,五六個專案堆在一起,頭疼的是測試還失驚無神的給我丟來乙個幾十甚至上百m的日誌檔案,動不動就幾十上百萬行,就算是搜尋也看得頭昏眼花的,因此自己花了點時間寫了一段小指令碼去過濾日誌,當然這樣的東西網上應該大把,但是還是想自己搞下,權當學習!

#!/usr/bin/python

# -*- encoding: utf-8 -*-

# version 1.0

import re

import time

'''用於篩選日誌檔案,適用於python2.x版本

使用時將日誌檔案放於search.py工具同一目錄

篩選完畢後會出現「舊檔名+當前時間」格式命名的新日誌檔案

'''def getparameters():

file_name = ""

key_work = ""

while (true):

file_name = raw_input("請輸入檔名:")

key_work = raw_input("請輸入過濾關鍵字:")

if len(file_name) == 0 or len(key_work) == 0:

flag = raw_input("您輸入的檔名或關鍵子為空,輸出c重試,q退出程式:")

if flag == "q":

return

elif flag == "c":

continue

else:

break

new_file = file_name + "-" + formattime(time.localtime())

f = open("./" + file_name, "rb")

lines = f.readlines()

if len(lines) == 0:

print("*****===日誌檔案為空*****===")

f.close()

return

nf = open("./" + new_file, "wb");

count = 0

for line in lines:

rs = re.search(key_work, line)

if rs:

print("[命中]--->%s" % line)

nf.write(line)

count = count + 1

f.close()

nf.close()

print("共找到%d條資訊" % count)

def formattime(timevalue):

'''format the time numbers

'''return time.strftime("%y%m%d%h%m%s", timevalue)

if __name__ == '__main__':

getparameters()

說明:這段指令碼我是直接在終端上./***x.py的方式執行的,我終端由於編譯android原始碼需要裝的是python2.7.6,在python3上執行估計會有問題。

好了,下面是我測試了下的賽選結果:

當然,這只針對單個檔案而已!

python篩選一段資料 按多個關鍵字篩選資料

我認為您可以為每個關鍵字建立單獨的掩碼,然後通過 將它們與鏈結結合起來 對於每行至少乙個true使用 df rest pd.dataframe cols 0,1,2 print m1 0 1 2 0 true true true 1 true true false 2 true false true...

搜尋關鍵字 篩選行業 篩選地區

1.template 2.script data sourcelist 是從後台獲取資料,所以 created methods this.selectinput object.keys selectinput foreach v let arr object.assign selectinput 把...

根據關鍵字檢視日誌

老是忘記怎麼檢視某個關鍵字的指令,看到有個老哥寫得不錯,我把它貼上到這裡備份啦 說明 這個只是供自己以後查詢使用,如有問題請指出。僅供參考 檢視匹配內容的前後幾行 reg 代表要搜尋的內容 destfile 代表要搜尋的檔案 grep 5 reg destfile 列印匹配行的前後5行 grep c...