Python 捕获警告
来源 | 写代码的明哥
责编 | 寇雪芹
头图 | 下载于视觉中国
警告不是异常
你是不是经常在使用一些系统库或者第三方模块的时候,发现一些既不是异常也不是错误的警告信息?这些经常出现的警告信息,容易让新手造成一些误判,以为是程序出错了。
实则不然,异常和错误都是程序出现了一些问题,但是警告不同,他的紧急程度非常之低,以致于大多数的警告都是可以直接忽略的。如果不想显示这些告警信息,可以直接加上参数 -W ignore 参数,就不会再显示了。
警告能捕获吗?
通常情况下,能捕获的只有错误异常,但是通过一系列的操作后,你可以将这些警告转化为异常。这样一来,你就可以像异常一样去捕获它们了。在不进行任何设置的情况下,警告会直接打印在终端上。
捕获警告的三种方法
方法一
在 warnings 中有一系列的过滤器。
当你指定为 error 的时候,就会将匹配警告转换为异常。
之后你就可以通过异常的方式去捕获警告了。
import warnings
warnings.filterwarnings('error') try:warnings.warn("deprecated", DeprecationWarning)
except Warning as e:print(e)
运行后,效果如下:
方法二
如果你不想对在代码中去配置将警告转成异常,
import warningstry:warnings.warn("deprecated", DeprecationWarning)
except Warning as e:print(e)
可以在执行的时候加上一个参数 -W error,实现的效果是相同的:
$ python3 -W error demo.py
deprecated
方法三
除了上面的方法之外 ,warnings 还自带了个捕获警告的上下文管理器。
当你加上 record=True 它会返回一个列表,列表里存放的是所有捕获到的警告,我将它赋值为 w,然后就可以将它打印出来了。
import warningsdef 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 搭建车道智能检测系统☞网易伏羲论文入选 CVPR:AI 感知表情能力或实现巨大突破!
点分享点收藏点点赞点在看
Python 捕获警告相关推荐
- python流获取控制台_对Python捕获控制台输出流的方法详解
有时候我们的代码里可能要调用控制台命令,比如我想用Python写一个批量编译 .java 文件的脚本,用到如下代码 常规用法 os.system import os,traceback try: p ...
- python捕获摄像头帧_Xuggler教程:帧捕获和视频创建
python捕获摄像头帧 注意:这是我们的" Xuggler开发教程 "系列的一部分. 到目前为止,在我们的Xuggler教程系列中,我们已经对视频处理的Xuggler进行了介绍, ...
- python 捕获多个异常_Python捕获多个异常
python 捕获多个异常 We can use a try-except block to catch exceptions and process them. Sometimes we call ...
- python关掉警告信息(warning)
在GCN normalization由于版本问题出现 除0 警告, RuntimeWarning: divide by zero encountered in power d_inv_sqrt = n ...
- Python消除警告的实用解决方案
大家好,我是herosunly.985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用.曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名.拥有多项发明专利.对机器学 ...
- python 忽略错误,python忽略警告(warning) 错误实现方法
这篇文章主要为大家详细介绍了python忽略警告(warning) 错误实现方法,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来 ...
- 安装Anaconda,Powershell输入python出现警告问题
关于安装Anaconda,Powershell输入python出现警告问题 PowerShell输入python出现如下问题 问题再现 问题分析 解决方案 问题解决 PowerShell输入pytho ...
- Python捕获 Warning 警告
warning在Python中是不会被try except捕获的,所以首先修改它,让try except可以捕获warning: import warningswarnings.filterwarni ...
- python弹出警告框_selenium+webdriver+python 中警告框的处理方法
在自动化测试过程中,经常会遇到弹出警告框的情况,如图所示: 在 WebDriver 中处理 JavaScript 所生成的 alert.confirm 以及 prompt 是很简单的.具体做法是使用 ...
最新文章
- Codeforces Round #703 (Div. 2)(A ~ F)超高质量题解【每日亿题2 / 19】
- 《构建之法》之第8、9、10章读后感
- 机器学习-算法背后的理论与优化(part5)--结构风险最小(下)
- linux编码 form表单,Linux curl 模拟form表单提交信息和文件
- oracle轮询方式循环输出,LGWR的两种模式(POST/WAIT和POLLING)
- 基于CMake构建MSVC_CUDA及MinGW编译环境下的的OpenCV项目
- JProfiler 简要使用说明
- C++ Primer Plus学习(九)——内存模型和名称空间
- Android Studio实现一个新闻APP
- MFC通过窗口标题获得窗口句柄
- 鼠标钩子WH_MOUSE_LL
- easyExcel实现excel文件上传和下载
- 需要密码才能打开的word文件
- 海洋环流与海浪数值模式
- android布局 哪个控件在最上层_Android 在最上层添加悬浮View(兼容Android 8.0)
- OVP 过压保护电路
- XCTF-PWN pwn-200(使用DynELF利用write泄露system地址)
- bootstrap v3.3.6 版本.table-striped不起作用的问题
- ubuntu 18.04 局域网无法访问内部DNS的解决办法
- 电脑摄像头阅卷软件在教学各环节中的实践应用