如何在 Python 中抑制警告

2024 年 8 月 29 日 | 阅读 6 分钟

引言

在本文中,我们将讨论如何在 Python 中抑制警告。如果您使用 Python 编程,并且是一名程序员,您一定曾经遇到过警告。Python 中的警告主要是在屏幕上显示一条消息。这条消息不包含任何错误或警告。有时,在执行代码时,编译器会就程序中的某个事件向用户发出警告。这可能是缩进问题或编译器版本问题。通常在用户需要被告知某个程序事件,但该事件不需要引发异常或终止程序时,就会发出警告消息。

例如,如果我们使用 Python 中一个在最新版本的 Python 中基本不允许使用的功能,那么您的显示器上就会出现警告消息。这是一种在编译时发生的警告。

描述 Python 警告。

警告是为了提醒开发人员存在一些不必要的异常。警告主要由于关键字、函数或类等引起。当使用某些编程元素时,会出现警告,例如程序中的警告与错误不同。如果在 Python 中出现任何问题,程序将立即终止。但警告的优先级较低。警告会显示一些消息,但程序可以继续运行。

示例 1

这里我们给出一个 Python 警告的例子。在下面的示例中,我们使用 warn() 函数来显示 Python 中的错误。警告消息仅向用户显示消息,并允许程序继续运行,而不管发送给我们的警告消息是什么。程序代码如下:

输出

现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下:

Hello Coders from javaTpoint
<string>:6: UserWarning: The Warning Message is: This is a warning message in python

示例 2

这里我们给出一个 Python 警告的例子。在下面的示例中,我们使用 warn() 函数来显示 Python 中的错误。程序代码如下:

输出

现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下:

Hello Coders
<string>:9: UserWarning: The Warning Message is: 10
Hello Coders!!

Python 中有哪些类型的警告?

Python 中有各种类型的警告。下面将讨论这些类型:

1. FutureWarning

FutureWarning 是 Python 中的一种警告。当这些报告针对 Python 脚本的最终用户时,它是关于已弃用功能的警告的基类。

2. BytesWarning

BytesWarning 是 Python 中的一种警告。此警告主要基于字节和字节数组。

3. DeprecationWarning

DeprecationWarning 是 Python 中的另一种警告。此警告主要基于 Python 开发者进行的弃用。

4. RuntimeWarning

RuntimeWarning 是 Python 中的另一种警告。此警告主要基于运行时特性。

5. ResourceWarning

ResourceWarning 是 Python 中出现的另一种警告。此警告主要基于资源使用情况。

6. SyntaxWarning

SyntaxWarning 是 Python 中出现的警告。此警告主要基于语法特性。如果存在任何语法误用,就会出现警告。

7. UserWarning

UserWarning 主要由用户生成,并使用 Python 中的 warn() 函数打印。

8. ImportWarning

ImportWarning 是 Python 中出现的另一种警告。此警告主要基于在 Python 中导入模块。

9. PendingDeprecationWarning

PendingDeprecationWarning 是 Python 中出现的另一种警告。此警告主要基于将要弃用的功能。

10. UnicodeWarning

UnicodeWarning 是 Python 中出现的另一种警告。此警告主要基于 Unicode。

11. Warning

Warning 是 Python 中出现的警告类别的主要类。此 Warning 是 Exception 的子类。

如何在 Python 中抑制警告?

有两种方法可以抑制 Python 中的警告,如下所示:

  1. 从代码中禁用警告
  2. 使用命令禁用警告

现在我们将在下面讨论这些主题。

1. 从代码中禁用警告

警告将用于关闭您帐户中的通知,所有警告都将被过滤掉而被忽略。因此,输出中不会显示任何警告。首先,我们将创建不需要警告运行的代码,然后我们将创建需要运行的代码。

示例 1

以下代码未禁用警告。代码是用 Python 编程语言编写的,我们使用 warn() 函数显示警告消息:

输出

现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下:

Hello Coders from JavaTpoint
<string>:6: UserWarning: The Error is: A warning is occured in this code
Hello Coders!

在上面的代码中,输出显示了一个自生成的警告消息。这里在此程序中启用了警告,因此在此处生成了警告消息。现在我们将在此程序中关闭警告,并检查程序是否显示警告消息。

示例 2

以下代码已关闭警告。代码是用 Python 编写的,我们使用 warn() 函数显示警告消息:

输出

由于第二个语句调用了 filterwarnings 并将 ignore 作为参数传递,因此代码的输出会覆盖警告。这会过滤掉在代码被忽略时发生的任何警告。因此,下一节中的警告不会显示。现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下:

Hello Coders from JavaTpoint
Hello Coders!

2. 使用命令禁用警告

抑制 Python 中警告的另一种方法是使用命令关闭警告。如果内容无法修改以包含历史记录,则可以外部化警告。此过程会将 ignore 参数传递给 Python 编译器的 -W 开关。代码如下:

通过忽略 -W "ignore" 的第一个代码参数并关闭警告。代码是在命令行中运行的。因此,代码如下一部分:

输出

现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下:

C:\users\Desktop>py -W"ignore" test.py
Hello Coders from JavaTpoint
Hello Coders!

可以在文件执行时忽略警告。

如何在 Python 中抑制特定警告?

当我们要抑制 Python 中而不是所有警告的特定警告时,我们可以添加 filterwarnings() 函数。例如,在下面的代码中,我们保留文本匹配“permission denied”的消息,因为代码是私有的。但我们想显示一个特定的警告。那么这段代码就是完美的例子:

输出

现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下:

Hello Coders!
<string>:5: UserWarning: The Warning Message is: This is the warning message in here

结论

因此,在本文中,我们讨论了如何在 Python 中抑制警告。警告主要显示一条消息。但是由于警告,您的程序不会遇到任何错误。在这里,我们分享了两种抑制 Python 中警告的技术。我们还分享了这些技术的代码。