抑制 Python 中的警告

当使用某些过时的类、函数、关键字等时,会在 Python 中引发警告。这些不像错误。当程序中发生错误时,程序终止。但是,如果程序中有警告,它会继续运行。

本教程演示了如何抑制 Python 程序中的警告。

使用 filterwarnings() 函数抑制 Python 中的警告

warnings 模块处理 Python 中的警告。我们可以使用 warn() 函数显示用户提出的警告。我们可以使用 filterwarnings() 函数对特定警告执行操作。

例如,

import warnings
warnings.filterwarnings('ignore', '.*do not.*', )
warnings.warn('DelftStack')
warnings.warn('Do not show this message')

输出:

<string>:3: UserWarning: DelftStack

正如所观察到的,当引发 Do not show this message warning 时,会触发过滤器中的操作 ignore,并且只显示 DelftStack 警告。

我们可以通过使用 ignore 操作来抑制所有警告。

请参考下面的代码。

import warnings
warnings.filterwarnings('ignore')
warnings.warn('DelftStack')
warnings.warn('Do not show this message')
print("No Warning Shown")

输出:

No Warning Shown

使用 -Wignore 选项抑制 Python 中的警告

-W 选项有助于控制是否必须打印警告。但是必须为该选项指定一个特定的值。没有必要只提供一个值。我们可以为选项提供多个值,但 -W 选项将考虑最后一个值。

要完全抑制警告 -Wignore 选项被使用。我们必须在运行文件时在命令提示符中使用它,如下所示。

python -W warningsexample.py

使用 PYTHONWARNINGS 环境变量抑制 Python 中的警告

我们可以在 Python 2.7 及更高版本中导出一个新的环境变量。我们可以导出 PYTHONWARNINGS 并将其设置为忽略以抑制 Python 程序中引发的警告。