python捕获警告的三种方法

 更新时间:2021年03月13日 16:35:06   作者:写代码的明哥  
这篇文章主要介绍了python捕获警告的三种方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下

1. 警告不是异常

你是不是经常在使用一些系统库或者第三方模块的时候,会出现一些既不是异常也不是错误的警告信息?

这些警告信息,有时候非常多,对于新手容易造成一些误判,以为是程序出错了。

实则不然,异常和错误,都是程序出现了一些问题,但是警告不同,他的紧急程度非常之低,以致于大多数的警告都是可以直接忽略的。

如果不想显示这些告警信息,可以直接加上参数  -W ignore 参数,就不会再显示了。

2. 警告能捕获吗

能捕获的只有错误异常,但是通过一系列的操作后,你可以将这些警告转化为异常。

这样一来,你就可以像异常一样去捕获他们了。

在不进行任何设置的情况下,警告会直接打印在终端上。

3. 捕获警告方法一

在 warnings 中有一系列的过滤器。

当你指定为 error 的时候,就会将匹配警告转换为异常。

之后你就可以通过异常的方式去捕获警告了。

import warnings
warnings.filterwarnings('error')    

try:
    warnings.warn("deprecated", DeprecationWarning)
except Warning as e:
    print(e)

运行后,效果如下

4. 捕获警告方法二

如果你不想对在代码中去配置将警告转成异常。

import warnings

try:
    warnings.warn("deprecated", DeprecationWarning)
except Warning as e:
    print(e)

可以在执行的时候,只要加上一个参数 -W error ,就可以实现一样的效果

$ python3 -W error demo.py
deprecated

5. 捕获警告方法三

除了上面的方法之外 ,warnings 还自带了个捕获警告的上下文管理器。

当你加上 record=True 它会返回一个列表,列表里存放的是所有捕获到的警告,我将它赋值为 w,然后就可以将它打印出来了。

import warnings

def do_warning():
    warnings.warn("deprecated", DeprecationWarning)

with warnings.catch_warnings(record=True) as w:
    do_warning()
    if len(w) >0:
        print(w[0].message)

运行后,效果如下

以上就是python捕获警告的三种方法的详细内容,更多关于python 捕获警告的资料请关注脚本之家其它相关文章!

相关文章

  • python下载库的步骤方法

    python下载库的步骤方法

    在本篇文章里小编给大家分享的是关于python怎么下载库的详细实例内容,有需要的朋友们学习下。
    2019-10-10
  • Python面向对象编程中的类和对象学习教程

    Python面向对象编程中的类和对象学习教程

    这篇文章主要介绍了Python面向对象编程中的类和对象学习教程,面向对象是Python的基础特性,其中的类与对象的特性和使用方法是Python学习当中的基本功,需要的朋友可以参考下
    2015-03-03
  • Python3 中return和yield的区别

    Python3 中return和yield的区别

    这篇文章主要介绍了Python3 中return和yield的区别,return和yield都用来返回值;在一次性地返回所有值场景中return和yield的作用是一样的,但是具体有什么区别呢,带着疑问一起进入下面文章学习详细内容吧
    2022-06-06
  • python实现单向链表详解

    python实现单向链表详解

    这篇文章主要介绍了python实现单向链表详解,分享了相关代码示例,每一步操作前都有简单分析,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Python字符串格式化f-string多种功能实现

    Python字符串格式化f-string多种功能实现

    这篇文章主要介绍了Python字符串格式化f-string格式多种功能实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 使用WingPro 7 设置Python路径的方法

    使用WingPro 7 设置Python路径的方法

    Python使用称为Python Path的搜索路径来查找使用import语句导入代码的模块。这篇文章主要介绍了使用WingPro 7 设置Python路径的方法,需要的朋友可以参考下
    2019-07-07
  • 详解Python中魔法方法的使用

    详解Python中魔法方法的使用

    Python的魔法方法,也称为dunder(双下划线)方法,是可以让你对类添加“魔法”的特殊方法。本文主要来和大家聊聊魔法方法的使用,需要的可以参考一下
    2022-12-12
  • Django 框架模型操作入门教程

    Django 框架模型操作入门教程

    这篇文章主要介绍了Django 框架模型操作,结合实例形式分析了Django框架相关的数据库配置、数据增删改查等操作技巧,需要的朋友可以参考下
    2019-11-11
  • python模拟登陆阿里妈妈生成商品推广链接

    python模拟登陆阿里妈妈生成商品推广链接

    这篇文章主要介绍了python模拟登陆阿里妈妈生成商品推广链接,需要的朋友可以参考下
    2014-04-04
  • python matplotlib实现双Y轴的实例

    python matplotlib实现双Y轴的实例

    今天小编就为大家分享一篇python matplotlib实现双Y轴的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02

最新评论