第乙個python 程式

2021-08-24 17:18:43 字數 2350 閱讀 3212

有人在論壇 上問 將日誌格式化的方法,

剛好學python,就拿這個練手了:

09:55:54: error1 /tmp/error/log.3 50 times

mon jun 28 00:00:53 2009

09:55:54: error1 /tmp/error/log.3 50 times

09:56:09: error1 /tmp/error/log.14 50 times

10:56:12: error1 /tmp/error/log.14 100 times

10:56:23: error2 /tmp/error/log.5 50 times

11:56:26: error2 /tmp/error/log.1 50 times

11:56:27: error2 /tmp/error/log.5 100 times

mon jun 29 00:00:53 2009

15:56:29: error3 /tmp/error/log.1 100 times

15:56:32: error3 /tmp/error/log.1 150 times

16:56:33: error4 /tmp/error/log.6 50 times

16:56:36: error4 /tmp/error/log.6 100 times

16:56:40: error4 /tmp/error/log.12 50 times

mon jun 30 00:00:53 2009

格式化成:

2009|jun|28|10|error1|1

2009|jun|28|10|error2|1

2009|jun|29|16|error4|3

2009|jun|29|15|error3|2

python 源**:

#!/usr/bin/env python

importre

importsys

defformat_log(logf):

re_hour = re.compile(r'^/d/d:')

re_sp_split = re.compile(r'/s+')

#extract the day from time line

make_day =lambdad:d[4] + '|'+ d[1]+ '|'+ d[2]

make_key =lambdad,c:d + '|'+ c[0][0:2] + '|'+ c[1]

cur_day = 'n/a|n/a|n/a'

log_cnt=dict()

forlineinlogf:

m = re_hour.match(line)

cols = re_sp_split.split(line)

iflen(cols) < 3: #not a valid log

continue

ifmisnotnone: #this is log line ,not date

key = make_key(cur_day, cols)

#date | hour | err_type

ifkeynotinlog_cnt:

log_cnt[key] = 1

else:

log_cnt[key] += 1

else:

iflen(cols) < 5: #not a valid log

continue

cur_day=make_day(cols)

sorted_key = log_cnt.keys()

sorted_key.sort()

forkeyinsorted_key:

print'%s|%d'% (key, log_cnt[key])

if__name__ == '__main__':

format_log(sys.stdin)

python 比較易懂,這點比perl 要好多了。

上邊的**,即使不會python的人也能看懂60%

第乙個python 程式

有人在論壇 上問 將日誌格式化的方法,剛好學python,就拿這個練手了 09 55 54 error1 tmp error log.3 50 times mon jun 28 00 00 53 2009 09 55 54 error1 tmp error log.3 50 times 09 56 ...

第乙個python程式

在之前學習了基本的python知識以後,我決定編寫自己的第乙個python程式。可汗學院公開課 全部 根據以上兩個內容為基礎,編寫乙個爬取 源 的python程式,中間一步步來,終極目標是實現 rss 那樣的新聞聚合功能。這個想法我已經想了快半個月了,可是一直遲遲沒有實現,正好趁這個機會。準備開始像...

第乙個Python程式

本節內容如下 python程式的乙個很大的特點就是簡潔,像編寫其他程式,輸出乙個 hello world 需要寫好幾行 什麼導入庫,呼叫輸出函式等等。然而,python的 hello world 在命令列輸出可以非常簡單,輸入乙個 hello world 回車,直接可以列印結果。實現步驟如下 1.開...