解析特定字符串的日志文件

时间:2018-01-16 19:46:17

标签: python

我正在尝试解析特定字符串的日志文件,但是,日志文件具有类似的字符串,当我使用for循环搜索文件时,它会抓取这些字符的最新序列。有什么想法吗?

    search1 = xyz
    search2 = xy

    while file as f:
         for line in file:
             if search2 in line:
                 print(line)

日志文件与此

类似

ASD ASDA asdaga asdga XY xyz< --- 我收到的结果是xyz行打印,即使我的搜索变量是xy。我猜这种情况正在发生,因为序列'xy'在'xyz'中但是我可以搜索字符串的确切序列吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

一个简单的技巧是split() line,(可选地将其设为一组),然后进行成员资格测试:

for line in file:
    # If you want to do many tests, then 
    # creating a `set` might be a good idea
    # line = set(line.split())
    # if search2 in line:
    # ...
    if search2 in line.split():
        print(line)

答案 1 :(得分:0)

假设你有一个这样的文件:

blah xy blah
xxyz 123
adfayx
dat xyz data

然后,以下Python代码使用regex来查找xy

import re

with open('file', 'r') as f:
    file_contents = f.read()


re_target = re.compile('\sxy\s')
results = re_target.findall(file_contents)
print results

所有这一切都是查找字符串xy,其两边都有空格。如果您有任何问题,请告诉我们!