读书人

python处置log文件

发布时间: 2012-08-15 16:57:16 作者: rapoo

python处理log文件
log文件大约是这样的格式
[16:01:14]: =======Begin=========
[16:01:14]: 100
[16:01:14]: 110
[16:01:14]: 200
[16:01:14]: 210
[16:01:14]: 300
此处省略n行
[16:01:14]: =======End=========
[16:01:14]: =======Begin=========
[16:01:14]: 100
[16:01:14]: 110
[16:01:14]: 200
[16:01:14]: 210
[16:01:14]: 300
此处省略n行
[16:01:14]: =======End=========
[16:01:14]: =======Begin=========
..........



目的要把比如代号10 后面的数据加入一个list
代号20 后面的数据加入一个list

求一个缩小版的程序或者思路 思路最好写下用的大概方法


[解决办法]

Python code
#!/usr/bin/env pythontext = '''[16:01:14]: =======Begin=========[16:01:14]: 10 0[16:01:14]: 11 0[16:01:14]: 20 0[16:01:14]: 21 0[16:01:14]: 30 0[16:01:14]: =======End=========[16:01:14]: =======Begin=========[16:01:14]: 10 0[16:01:14]: 11 0[16:01:14]: 20 0[16:01:14]: 21 0[16:01:14]: 30 0[16:01:14]: =======End=========[16:01:14]: =======Begin========='''import redata = text.split('\n')result = {}for line in data:    rs = re.search('^\[\d+:\d+:\d+\]: (\d+) (\d+)', line)    if rs:        k, v = rs.group(1), rs.group(2)        if k in result:            result[k].append(v)        else:            result[k] = [v]for k in sorted(result):    print k, ' => ', result[k] 

读书人网 >perl python

热点推荐