第乙個python 程式

2021-04-30 19:56:31 字數 2433 閱讀 3070

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

剛好學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

import re

import sys

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

第乙個Python程式

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

第乙個python程式

使用文字編輯器 python互動式命令列的方式寫程式 好處 一下子就能得到結果 缺點 沒法儲存 使用編輯器可以避免這一問題 1 sublimetext 免費使用,但不付費會出現提示框 2 notepad 免費,中文 備註 不能用word或windows自帶的記事本 編寫程式 1 必須以.py結尾 2...