抑制 Python 中的警告

Lovey Arora 2023年10月10日
  1. 使用 filterwarnings() 函数抑制 Python 中的警告
  2. 使用 -Wignore 选项抑制 Python 中的警告
  3. 使用 PYTHONWARNINGS 环境变量抑制 Python 中的警告
抑制 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 程序中引发的警告。