0

我在解析 .txt 格式的日志文件时遇到了一些问题。

这是我试图提取数据的日志的一部分:

CRIT   :  [2013-07-26T14:40:50-0400] msg=<POLICY ADDED>,

我想要的具体部分是 CRIT 和 msg= POLICY ADDED。到目前为止,我得到的代码会找到 CRIT 字符串,而不是 msg= 部分。我相信这与两个词之间的空格有关。

这是我到目前为止的代码:

#!/usr/bin/python

test=open("samhain.txt", "r").readlines()
KEYWORDS= ['CRIT','msg=<POLICY ADDED>']

counterline=[]
counter=0

for line in test:
for word in line.split():
    counter+=1
    if word in KEYWORDS:
        counterline.append(counter)
        print word

我需要在列表中添加什么才能处理空格?

谢谢你的帮助!

4

1 回答 1

0

看起来您可以改用正则表达式:

s = 'CRIT   :  [2013-07-26T14:40:50-0400] msg=<POLICY ADDED>,'    
import re
print re.match(r'(\w+).*?msg=<(.*?)>', s).groups()
# ('CRIT', 'POLICY ADDED')
于 2013-07-29T16:37:58.363 回答