我正在尝试解析特定字符串的日志文件,但是,日志文件具有类似的字符串,当我使用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'中但是我可以搜索字符串的确切序列吗?
谢谢,
答案 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
,其两边都有空格。如果您有任何问题,请告诉我们!