我有以下代码
if "[FAILED]" in line and (("Result:" not in line) or ("Date:" not in line)):
print line
我正在逐行阅读文本文件。我想在文本文件“[FAILED]”的任何地方寻找,但它不能在同一行中有“Result:”或“Date:”。
我的代码目前打印出该行,即使其中包含结果或日期。
任何帮助都将不胜感激。
感谢。
答案 0 :(得分:1)
括号中的条件之间需要and
。
布尔逻辑很棘手,如果经常有助于通过示例。考虑这一行:
FAILED blah blah Date: blah
所以,逐个完成你的条件:
显然,如果该行包含“Result:”而不是“Date:”,则会发生完全相同的情况。
如果您在parens中有AND,则需要检查两个“Date”是否在行中并且“Result”不在行中,而不是在时感到高兴> 不存在。
表达可能更清楚的条件的另一种方式是:
if "[FAILED]" in line and not (("Result:" in line) or ("Date:" in line)):