在运行代码时,有时出现warning信息,

1.当你后台不需要warning信息的时候,可以直接把warning信息省略掉。

2.如果代码是循环,则会在控制台打印多次warning信息,这会使得warning信息占满整个控制台,失去了有效的历史记录。

1.warning的地位

BaseException
+-- Exception
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
+-- ResourceWarning

2.警告过滤器与简易警告过滤器

对于这种情况,python有一个标准模块warnings,可以利用这个模块对warning信息进行过滤和处理。

def filterwarnings(action, message="", category=Warning, module="", lineno=0,
append=False):

警告过滤器用于控制警告的行为,如忽略,显示或转换为错误(引发异常)

警告过滤器维护着一个有序的过滤规则列表,匹配规则用于确定如何处理警告,任何特定警告都将依次与列表中的每个过滤规则匹配,直到找到匹配为止。

过滤规则类型为一个元组 (action,message,category,module,lineno),其中:

The warnings filter controls whether warnings are ignored, displayed, or turned into errors (raising an exception)

import warnings
warnings.filterwarnings(action='xxx')

  • message 是包含正则表达式的字符串,警告消息的开始必须匹配,不区分大小写
  • category 是一个警告类型(必须是 Warning 的子类)
  • module 是包含模块名称的正则表达式字符串,区分大小写
  • lineno 是一个整数,警告发生的行号,为 0 则匹配所有行号
warnings.filterwarnings(action, message='', category=Warning, module='', lineno=, append=False)
  Insert an entry into the list of warnings filter specifications.
  The entry is inserted at the front by default; if append is true, it is inserted at the end.
  This checks the types of the arguments, compiles the message and module regular expressions, and inserts them as a tuple in the list of warnings filters.
  Entries closer to the front of the list override entries later in the list, if both match a particular warning. Omitted arguments default to a value that matches everything. warnings.simplefilter(action, category=Warning, lineno=, append=False)
  Insert a simple entry into the list of warnings filter specifications.
  The meaning of the function parameters is as for filterwarnings(),
  but regular expressions are not needed as the filter inserted always matches any message in any module as long as the category and line number match.

控制warning信息在控制台的显示的更多相关文章

  1. log4j 配置,tomcat 启动或有后台操作时,控制台会显示很多 DEBUG 信息

    log4j 配置,tomcat 启动或有后台操作时,控制台会显示很多 DEBUG 信息 日志信息可以以文件形式显示,也可以在控制台输出,在 log4j.properties 文件设置. 控制台有很多 ...

  2. idea操作maven时控制台中文显示乱码/maven项目启动方式

    在idea中通过maven启动项目时,在前台显示数据库信息,没有中文乱码问题,在控制台中mybatis显示数据库的信息,中文显示乱码. 在程序中用 System.out.println 输出中文的时候 ...

  3. Linux 下实现控制屏幕显示信息和光标的状态

    //display.h /************************************************************* FileName : display.h File ...

  4. (转)log4j(二)——如何控制日志信息的输出?

    一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 先看栗子再来下结论 import org.apache.log4j.*; import test.log4j.bean ...

  5. log4j(二)——如何控制日志信息的输出?

    一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 二:先看栗子再来下结论 import org.apache.log4j.*; import test.log4j.bean ...

  6. C#代码实现在控制台输入密码显示星号

    在控制台输入的内容C#默认按照字符串进行处理,如果直接让用户一次输入完毕就很难实现 显示星号的功能.但是如果让用户一次只能输入一个字符就,在将用户输入的字符替换为星号就可以实现了! 首先,C#中能让用 ...

  7. JAVA基础-输入输出:1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上。

    1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上. package Test03; ...

  8. js控制 固定框架内图片 按比例显示 以及 占满框架 居中显示

    js控制 固定框架内图片 等比例显示 以及 占满框架 纵横居中显示 通过设置 js函数 fitDiv里面var fit的值就好 function fitDiv (obj) { var target_w ...

  9. AngularJS 表单提交后显示验证信息与失焦后显示验证信息

    虽然说AngularJS的实时表单验证非常有用,非常高效方便,但是当用户还没有完成输入时便弹出一个错误提示,这种体验是非常糟糕的. 正常的表单验证逻辑应该是在用户提交表单后或完成当前字段中的输入后,再 ...

随机推荐

  1. Redis 常用命令学习二:字符串类型命令

    1.赋值与取值命令 127.0.0.1:6379> set foo helloredis OK 127.0.0.1:6379> get foo "helloredis" ...

  2. Windows 下redis的安装和使用

    1.下载 Window 下载地址:https://github.com/MSOpenTech/redis/releases 查找版本对应的一个MSI或者zip文件下载 2.安装 MSI文件需要安装 z ...

  3. 2019牛客多校三 A. Graph Games (图分块)

    大意: 给定无向图, 定义$S(x)$为$x$的邻接点集合. 每次操作翻转$[L,R]$范围的边, 询问$S(x)$与$S(y)$是否相等. 快速判断集合相等可以用$CF 799F$的技巧. 采用$h ...

  4. SpringCloud Eureka 配置

    修改 Eureka server 注册中心上面显示的服务名称 参数配置 默认值     说明 服务注册中心配置   Bean类:org.springframework.cloud.netflix.eu ...

  5. deferred.promise.then().then()异步链式操作(Chain operation)

    //deferred.promise.then().then() deferred.promise.then(function () { console.log('1 resolve'); retur ...

  6. 音视频入门-03-RGB转成BMP图片

    * 音视频入门文章目录 * BMP 文件格式解析 BMP 文件由文件头.位图信息头.颜色信息和图形数据四部分组成. 位图文件头(14个字节) 位图信息头(40个字节) 颜色信息 图形数据 文件头与信息 ...

  7. 嗯 第二道线段树题目 对左右节点和下标有了更深的理解 hdu1556

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. C# 关于爬取网站数据遇到csrf-token的分析与解决

    需求 某航空公司物流单信息查询,是一个post请求.通过后台模拟POST HTTP请求发现无法获取页面数据,通过查看航空公司网站后,发现网站使用避免CSRF攻击机制,直接发挥40X错误. 关于CSRF ...

  9. VBA精彩代码分享-4

    VBA设置/取消工作簿共享是很常用的一个功能,那么如何用代码实现呢? 设置共享 Then MsgBox "文件没有保存" Exit Sub End If Application.D ...

  10. C++ 函数重载二义性

    说起函数重载,我不由得想起了C++的“多态”特性.多态又分为静态(编译时)多态和动态(运行时)多态,静态多态即为函数重载,动态多态则是虚函数机制.虚函数水较深,先不讨论,今天我们来看一下函数重载.作用 ...