python中warnings--警告控制
- 警告过滤器
警告过滤器控制警告是被忽略、显示还是变成错误(引发异常)。每个条目都是表单的元组(action、 message、category、module、lineno),其中:
-
action 是以下字符串之一:
image.png message是一个字符串,其中包含警告消息的开头必须匹配的正则表达式。表达式被编译为始终不区分大小写。
category是一个类( 的子类
Warning
),警告类别必须是其子类才能匹配。module是一个包含模块名称必须匹配的正则表达式的字符串。表达式被编译为区分大小写。
lineno是一个整数,警告发生的行号必须匹配,或者
0
匹配所有行号。
warnings.filterwarnings(action,message ='',category = Warning,module ='',lineno = 0,append = False)
将条目插入到过滤规范的警告列表中。
该条目默认插入前面;如果append为true,则将其插入到最后。
这将检查参数的类型,编译消息和模块正则表达式,并将其作为元组插入到警告过滤器列表中。
如果两者匹配特定的警告,则更接近列表前面的条目会覆盖列表后面的条目。
省略的参数默认为匹配所有内容的值。
参数说明:
action是以下字符串之一:
值 | 处置
“error” | 将匹配警告转换为异常
“ignore” | 不会打印匹配的警告
“always” | 总是打印匹配的警告
“default” | 打印发出警告的每个位置的首次出现的匹配警告
“module” | 将为发出警告的每个模块打印首次发生的匹配警告
“once” | 仅打印第一次匹配的警告,不管位置如何
message是一个包含正则表达式的字符串,警告消息的开始必须匹配。表达式被编译为始终不区分大小写。
category是一个类(Warning的一个子类),其中警告类别必须是一个子类才能匹配。
module是一个包含模块名称必须匹配的正则表达式的字符串。表达式被编译为区分大小写。
lineno是发生警告的行号必须匹配的整数,或0以匹配所有行号。