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