欢迎关注WX公众号:【程序员管小亮】

在python中运行代码经常会遇到的情况是——代码可以正常运行但是会提示警告,有时特别讨厌,尤其是强迫症患者真的是很难过了 ????(一大片。。。。。。。。。自闭中ing)。

那么如何来控制警告输出呢?其实很简单,python通过调用warnings模块中定义的warn()函数来发出警告。我们可以通过警告过滤器进行控制是否发出警告消息,

代码:

import warnings
warnings.filterwarnings('ignore')


这样就可以忽略警告消息了。下面来函数解析一下:

warnings.filterwarnings(action, 
message='',
category=Warning,
module='',
lineno=0,
append=False)


过滤警告,在 ​​警告过滤器规则​​ 列表中插入一个条目。默认情况下,条目插入在前面;如果 ​​append​​ 为真,则在末尾插入。它检查参数的类型,编译 ​​message​​ 和 ​​module​​ 的正则表达式,并将它们作为警告过滤器列表中的元组插入。如果多个地方都匹配特定的警告,那么更靠近列表前面的条目会覆盖列表中后面的条目,省略的参数默认为匹配一切的值。

  • ​action​​ 是以下表格左侧的值:

处理方式

“error”

将匹配警告转换为异常

“ignore”

忽略匹配的警告

“always”

始终输出匹配的警告

“default”

对于同样的警告只输出第一次出现的警告

“module”

在一个模块中只输出第一次出现的警告

“once”

输出第一次出现的警告,而不考虑它们的位置

  • ​message​​ 是包含正则表达式的字符串,警告消息的开始必须匹配,不区分大小写
  • ​category​​ 是一个警告类型(必须是 Warning 的子类)
  • ​module​​ 是包含模块名称的正则表达式字符串,区分大小写
  • ​lineno​​ 是一个整数,警告发生的行号,为 0 则匹配所有行号

命令行下的运行代码为:

python -W ignore file.py