日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python日志统计_python试用-日志统计

發布時間:2025/3/8 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python日志统计_python试用-日志统计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近兩天嘗試用python代替bash寫Linux?Shell腳本來統計日志。發現python寫起來比bash更簡單和容易閱讀,發現不少驚喜。所以寫了一個粗糙的腳本來統計日志。

目標

1、通過簡單命令和腳本統計事件發生數

2、日志限定文本類型

假定環境

日志文件:1.log

test:aaa,1

test:bbc,1

test:bbc,2

test:bba,2

test:baa,3

test:baa,1

other1:xx,bb,3

other2:32

日志文件:2.log

test:ab,2

other3:123

統計腳本

log_static.py

統計腳本

1 #!/usr/bin/python2 importsys3 #1st arg for tag key4 key="test:"iflen(sys.argv)>2;elsesys.argv[1]5 #2nd arg for split signal6 split=","iflen(sys.argv)>3elsesys.argv[2]7 #3rd arg for static index8 stat_idx=0iflen(sys.argv)>4elseint(sys.argv[3])9 key_map={}10 #loop for read11 whileTrue:12 #reading line from piple13 line=sys.stdin.readline()14 line=line[:-1]ifline.endswith("\n")elseline15 iflen(line)==0:16 break17 #find current key to static18 cur_key=line.split(key)[1].split(split)[stat_idx]19 #update static20 key_map[cur_key]=key_map[cur_key]+1if(key_map.has_key(cur_key))else121 22 #sort the map23 result=sorted(key_map.items(),lambdax,y: cmp(y[1],x[1]))24 #print out25 forkey,valueinresult:26 print"%s,%s"%(key,value)

運行

添加執行權限:chmod + log_static.py

選擇關鍵標簽"test:",日志值分隔符為","

統計第一位發生次數:grep "test" *.log | ./log_static.py test: , 0 > 1.cvs

統計第二位發生次數:grep "test" *.log | ./log_static.py test: , 1 > 2.cvs

結果

統計文件:1.cvs

bbc,2

baa,2

ab,1

aaa,1

bba,1

統計文件:2.cvs

1,3

2,3

3,1

備注

#!/usr/bin/python              python庫引用

import sys                  導入系統組建

sys.argv                   調用參數

target = value 1 if (statement) else value2 相當于target =?statement ? value 1 : value2

python的通過縮進判斷分塊,沒有結束符號

while (statement) True:

#code here

設置arr = [1,2,3,4],arr[:-2]篩選變為[1,2]  除了篩選還可以賦值arr[0 for x in range(0, 10)]

lambda x,y : cmp(y[1], x[1])        lambda運算,表述傳入參數x,y?返回y[1]和x[1]的比較值(倒序)

for x,y in list                表示枚舉list的每一項(item),其中x取值item[0],y取值item[1]

print "%s,%s" % (x,y)           格式化打印,%s代表該位置的字符串類型

總結

以上是生活随笔為你收集整理的python日志统计_python试用-日志统计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。