Python 为特定字符串分析日志文件

Python 为特定字符串分析日志文件,python,Python,我试图为特定字符串解析日志文件,但是,日志文件具有类似的字符串,当我使用for循环搜索文件时,它会获取这些字符的最新序列。有什么想法吗 search1 = xyz search2 = xy while file as f: for line in file: if search2 in line: print(line) 日志文件与此类似 自闭症 阿斯达 阿斯达加 阿斯德加 xy xyz一个

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

    search1 = xyz
    search2 = xy

    while file as f:
         for line in file:
             if search2 in line:
                 print(line)
日志文件与此类似

自闭症 阿斯达 阿斯达加 阿斯德加 xy
xyz一个简单的技巧是将
行拆分()
,(可以选择将其设置为一组),然后执行成员资格测试:

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)

假设您有这样一个文件:

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
。如果你有任何问题,请告诉我

@Aiven是的,这就是为什么它被称为可选的。如果您自己编写日志文件,一个简单的修复方法是使用不是彼此子字符串的标记。或者您可以添加标点符号,如Err_xy_uuuuvs Err_xyz_