在 for 循环中使用断言
Using assert in for loop
我想做以下事情:
- 遍历文件
- 断言每一行中的特定条件
is not
- 如果它 returns 为假,记录有问题的行
- 继续浏览整个文件
这是我目前拥有的:
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?
我想做以下事情:
- 遍历文件
- 断言每一行中的特定条件
is not
- 如果它 returns 为假,记录有问题的行
- 继续浏览整个文件
这是我目前拥有的:
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?