抑制 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 程式中引發的警告。