在python中搜索另一个字符串中的两个字符串

2024-04-29 19:41:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python逐行搜索日志文件。 我想捕获包含两个字符串的行"apple" and "banana"

有些行只包含"apple",同样有些行只包含"banana"。如何检查行是否同时包含两个字符串,然后进入下一个条件

我现在是这样做的,但它还不起作用

APPLE = "APPLE"
FAILURE_MSGS {
    APPLE: "apple"
}

for line in out.splitlines():
    if FAILURE_MSGS[APPLE] and "banana" in line:
        <do something special with this line>

需要注意的是,"apple"是从其他人的预期失败消息列表中预定义的,我也希望找到"banana",但我不想把它添加到失败消息目录中

最终发生的是,每一行都有“苹果”或“香蕉”,而不仅仅是找到了两者。不知道为什么


Tags: and文件字符串in消息appleforfailure
2条回答

正确的代码是:

for line in out.splitlines():
    if FAILURE_MSGS[APPLE] in line and "banana" in line:
         <do something special with this line>

代码的作用:

  • 如果失败,由于每个非空字符串 是真的
  • if“banana”in line仅在banana in line时返回true

所以你会得到所有行有“香蕉”而不管“苹果”

你需要改变你的状况。现在,你正在测试“苹果”是否正确,以及“香蕉”是否符合要求。您将得到包含“banana”的所有行

如果更改为:

if FAILURE_MSGS[APPLE] in line and "banana" in line:

然后您应该得到预期的行为(只处理同时包含“apple”和“banana”的行)

相关问题 更多 >