2021-10-26

python中warnings--警告控制

  1. 警告过滤器
    警告过滤器控制警告是被忽略、显示还是变成错误(引发异常)。每个条目都是表单的元组(actionmessagecategorymodulelineno),其中:
  • 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以匹配所有行号。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容