在Python中解析特定字符串的.txt文件时遇到问题
问题描述:
解析日志文件时出现了一些问题,它是.txt格式。在Python中解析特定字符串的.txt文件时遇到问题
这里就是我试图提取数据的日志的部分:
CRIT : [2013-07-26T14:40:50-0400] msg=<POLICY ADDED>,
,我想具体的作品是爆击和味精=政策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
什么我需要添加到我的列表,以便它可以处理的空白?
感谢您的帮助!
答
看起来你可以使用,而不是一个正则表达式:
s = 'CRIT : [2013-07-26T14:40:50-0400] msg=<POLICY ADDED>,'
import re
print re.match(r'(\w+).*?msg=<(.*?)>', s).groups()
# ('CRIT', 'POLICY ADDED')
+0
谢谢,这很好! – Josh
你在找什么,使用此代码吗? –
是的,你没有返回KEYWORDS的第二个成员的原因是因为'line.split()'正在用空格分割'line'。没有单个标记'msg ='。正则表达式的答案是你可能想要的。 –
verbsintransit