在运行代码时,有时出现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. 关于verilog实例化的介绍

    概念 当我们完成一个比较完整的系统的时候,通常需要编写一个Testbench来验证自己的设计的功能能否满足设计要求.在这个系统中通常会有一个top模块来连接那些小的模块,verilog通过实例化的方式 ...

  2. 第一周——不同java 的发展史你,注定成为不了领袖型人才

     James Gosling  1991年,James 高斯林在Sun公司的工程师小组想要设计这样一种小型计算机语言,该语言主要用于电视盒的消费类电子产品上.另外,由于不同的厂商选择不同的CPU和操作 ...

  3. Nachos java版学习(一)

    最近,操作系统课程设计使用伯克利大学的Nachos做为实验平台,老师也照搬伯克利的Project要求,开始我们的操作系统课程设计. 结合自己的学习过程和课设要求,我觉得对Nachos的学习首先应该从K ...

  4. LC 144. / 94. / 145. Binary Tree Preorder/ Inorder/ PostOrder Traversal

    题目描述 144. Binary Tree Preorder Traversal 94. Binary Tree Inorder Traversal 145. Binary Tree Postorde ...

  5. WUSTOJ 1239: n皇后问题(Java)

    题目链接:

  6. go slice切片注意跟数组的区别

    一个 slice 会指向一个序列的值,并且包含了长度信息. []T 是一个元素类型为 T 的 slice. [2]string 这样定义久是字符数组 []string 这样定义就是切片 表面上看切片就 ...

  7. UDP及操作系统理论

    UDP介绍 udp协议又称用户数据报协议 在OSI七层模型中,它于TCP共同存在于传输层 仅用于不要求可靠性,不要求分组顺序且数据较小的简单传输,力求速度 UDP结合socket用法 1.创建sock ...

  8. CSS 样式表{二}

    1 选择器的优先级 选择器的优先主要考虑选择器的权重 可以将各种选择器的权重以数值来表示,数值越大,优先级越高 选择器 权重值 标签selector 1 类选择器 10 ID选择器 100 行内样式 ...

  9. Docker的学习1

    Docker是开源的应用容器引擎.可以理解为轻量级的虚拟机,又可以理解为开了挂的chroot. 官方解释为docker是一个开源的项目,可以用来将任何应用以轻量级容器的形式,打包,发布和运行. doc ...

  10. springboot系列(四)springboot 配置

    在springboot出现之前,spring项目会存在多个配置文件,如web.xml,配置spring的多个spring-xxx.xml,xxx代表配置spring的某一功能,如aplication- ...