在 for 循环中使用断言

Using assert in for loop

我想做以下事情:

  1. 遍历文件
  2. 断言每一行中的特定条件is not
  3. 如果它 returns 为假,记录有问题的行
  4. 继续浏览整个文件

这是我目前拥有的:

import logging

with open('checkpoints-results.log') as file:
  for row in file:
    assert '"status":"Unresolved"' not in row, logging.warning(row)

现在它正在经历并抓住 第一次 事件,但随后停止。

我是不是漏掉了一些要继续读到文件末尾的东西?

如果不满足条件,

assert 将引发异常 (AssertionError)。如果引发异常,它会停止当前控制流并引发异常,直到它被捕获(或直到程序终止)。通常,您使用 assert 来指示出现意外错误,这样您的程序应立即终止。

我想你想做的是使用一个简单的 if 语句:

import logging

with open('checkpoints-results.log') as file:
    for row in file:
        if '"status":"Unresolved"' in row:
            logging.warning(row)
            continue
        # do other stuff with the row?