Python将日志文件字符串解析为txt文件

时间:2014-07-22 14:25:55

标签: python parsing

我编写了一个简单的Python脚本,它解析日志并在行等于mac地址时打印字符串。

我的下一步是将日志文件解析为txt文件。

有没有办法为接入点的每个mac地址创建一个变量,这样当它解析成文本文件时,它不会显示mac地址,它会显示AP名称和用户名?

这是一个示例行

[2014-07-22 10:21:06,821] <inform_stat-3> WARN  event  - [event] User[78:a3:e4:3b:bd:3d] roams from AP[dc:9f:db:1a:60:64] to AP[dc:9f:db:1a:2d:95] on "channel 11(ng)"

我的代码目前如下

for line in open("system.log"):
    if "e4:98:d6:27:4c:b6" in line:
        print line

1 个答案:

答案 0 :(得分:0)

从词典开始:

dd = {'78:a3:e4:3b:bd:3d' : 'Joe Smith',
      'dc:9f:db:1a:60:64' : 'Server1',
      'dc:9f:db:1a:2d:95' : 'Server1'}

dat = '[2014-07-22 10:21:06,821] <inform_stat-3> WARN  event  - [event] User[78:a3:e4:3b:bd:3d] roams from AP[dc:9f:db:1a:60:64] to AP[dc:9f:db:1a:2d:95] on "channel 11(ng)"'
aps = []
for elem in dat.split():
    if elem.startswith('User['):
        uname = dd.get(elem[5:-1], 'Unknown')
    if elem.startswith('AP['):
        aps.append(dd.get(elem[3:-1], 'Unknown'))

现在你应该有足够的信息打印到文本文件