欢迎关注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
python课程推荐。

本文介绍如何在Python中使用warnings模块控制警告输出,包括忽略警告、将警告转换为异常等操作,提供代码示例并解析filterwarnings函数参数。
658





