计算机程序有时很人性化,比如给你警告提示信息;

计算机程序有时又非常不人性化,比如动不动就给你警告提示......

如果你的程序是要给客户使用,有运行美化要求;

再尤其是比如警告出现在循环里的情况,那么每次循环都要打印出一堆警告信息......那就十分扯淡了。

怎么办?

显然,警告(Warning)并不是错误(Error),程序并不会因警告的出现而中止运行。

那些原始开发者一定早已考虑到这一点,设置了可供调整的警告输出模式。

我们以Python和R为例,看看基本的警告信息管理操作。

(一)Python

我们编写以下程序:

import warnings as w
if 1==1:
w.warn('警告!!!')

运行结果为:

Warning (from warnings module):
File "D:/warnings.py", line 3
w.warn('警告!!!')
UserWarning: 警告!!!

1)当使用命令行模式执行程序时,可在执行命令里加入-W ignore:

python -W ignore XXX.py

此时运行结果不输出警告。

2)也可在程序中导入warnings模块,使用警告过滤器。

import warnings as w
w.filterwarnings("ignore")
if 1==1:
w.warn('警告!!!')

此时运行结果也不输出警告。

而事实上,还有其它几个参数可供选择以控制警告:

Value

Disposition

"error"

turn matching warnings into exceptions

"ignore"

never print matching warnings

"always"

always print matching warnings

"default"

print the first occurrence of matching warnings for each location where the warning is issued

"module"

print the first occurrence of matching warnings for each module where the warning is issued

"once"

print only the first occurrence of matching warnings, regardless of location

如将程序改为:

import warnings as w
w.filterwarnings("ignore")
if 1==1:
w.warn('警告!!!')
w.filterwarnings("always")
if 1==1:
w.warn('警告!!!---')
w.filterwarnings("error")
if 1==1:
w.warn('警告!!!---===')
print('sfsdfsfsdfsdf')

输出结果:

Warning (from warnings module):
File "D:/warnings.py", line 7
w.warn('警告!!!---')
UserWarning: 警告!!!---
Traceback (most recent call last):
File "D:/warnings.py", line 10, in <module>
w.warn('警告!!!---===')
UserWarning: 警告!!!---===

(二)R

R语言控制警告就更方便了。可在程序前插入命令:

options(warn=N)

其中,N的取值可以为负数、0、1、2。

warn = 负数,则所有warning message都被忽略。
warn = 0 (默认值),则所有warning messages会被储存起来直到上级函数运行结束。
warn = 1,则一旦产生warning message,这条信息会被立即显示出来。
warn = 2 或更大的数值, 则warning message会被立即显示并转换成error message。

参考资料:

https://docs.python.org/2/library/warnings.html#temporarily-suppressing-warnings

https://blog.csdn.net/xiaodongxiexie/article/details/65646239

https://blog.csdn.net/stat_elliott/article/details/37878247

Python&R:警告信息管理的更多相关文章

  1. VS code 配置为 Python R LaTeX IDE

    VS code配置为Python R LaTeX IDE VS code的中文断行.编辑功能强大,配置简单. VSC的扩展在应用商店搜索安装,快捷键ctrl+shift+x调出应用商店. 安装扩展后, ...

  2. 配置 Sublime Text 3 作为Python R LaTeX Markdown IDE

    配置 Sublime Text 3 作为Python R LaTeX Markdown IDE 配置 Sublime Text 3 作为Python IDE IDE的基本功能:代码提醒.补全:编译文件 ...

  3. 机器学习算法 Python&R 速查表

    sklearn实战-乳腺癌细胞数据挖掘( 博主亲自录制) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...

  4. ubuntu 执行Python脚本出现: /usr/bin/env: ‘python\r’: No such file or directory

    原因: #!/usr/bin/env python 在ubuntu会变成 #!/usr/bin/env python\r 而\r 会被shell 当成参数 所以出现:  /usr/bin/env: ‘ ...

  5. 建模分析之机器学习算法(附python&R代码)

    0序 随着移动互联和大数据的拓展越发觉得算法以及模型在设计和开发中的重要性.不管是现在接触比较多的安全产品还是大互联网公司经常提到的人工智能产品(甚至人类2045的的智能拐点时代).都基于算法及建模来 ...

  6. python '%r'或者'{!r}'的意思

    转载:https://blog.csdn.net/a19990412/article/details/80149112 这两个都是python的转译字符, 类似于%r, %d,%f >>& ...

  7. Python&R&量化 金融之路

    [ 分类 ]- 金融之路 - 闲云孤鹤(人生在世五十年,大千世界一瞬间,浮生若梦,仿佛间,幻境一场,生者无常,终须尽.) - CSDN博客 https://blog.csdn.net/robertso ...

  8. 去掉python的警告

    1.常规警告 import warnings warnings.filterwarnings("ignore") 2.安装gensim,在python中导入的时候出现一个警告: w ...

  9. kNN算法及其python&R实现

    iris数据集,这一教科书级别的数据,分类前不需要做任何数据预处理什么的,相当的理想!但请注意你自己的数据99%的可能需要做预处理. 下面分别用R语言和Python来实现iris数据集的分类: R语言 ...

随机推荐

  1. 建立EF访问数据库架构时,出现One or more validation errors were detected during model generation

    原因是因为我在写实体类的时候没有为实体类中的属性声明一个主键,即用[key]特性标注在属性上,这样DbContext才能为我们在数据库上找到对应的主键 using System.ComponentMo ...

  2. Net 文件和流 I/O

    文件和流 I/O 2017/03/30 文件和流 I/O(输入/输出)是指在存储媒介中传入或传出数据. 在 .NET Framework 中,System.IO 命名空间包含允许以异步方式和同步方式对 ...

  3. mysql 5.6 后热数据的加载

    mysql 5.6 后热数据的加载 转自:http://blog.itpub.net/20892230/viewspace-2127469/ 故障现象:在数据库重启后,碰巧遇到业务高峰期,连接数满,导 ...

  4. 封装CURD

    <?php include ('ft.php'); $db=Danli::show(); //查询 //$re=$db->table('stree')->where(['name'= ...

  5. ElasticSearch工作原理与优化

    elasticsearch设计的理念就是分布式搜索引擎,底层其实还是基于lucene的,通过倒排索引的方式快速查询.比如一本书的目录是索引,然后快速找到每一章的的文本内容这种叫正向索引:而如果一件衣服 ...

  6. C数据结构排序算法——直接插入排序法用法总结(转http://blog.csdn.net/lg1259156776/)

    声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 排序相关的的基本概念 排序:将一组杂乱无章的数据按一定的规律顺次排列起来. 数据表( data list): ...

  7. div+css布局教程(1)

    margin:Margin属性用于设置两个元素之间的距离. 后面如果只有两个参数的话,第一个表示top和bottom,第二个表示left和right因为0 auto,表示上下边界为0,左右则根据宽度自 ...

  8. SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum

    SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum avg() 函数 定义和用法 AVG 函数返回数值列的平均值.NULL ...

  9. python:split()函数

    描述 Python 内置函数 指定分隔符对字符串进行切片 如果参数 num 有指定值,则仅分隔 num 个子字符串 返回分割后的字符串列表. 语法 str.split(str="" ...

  10. tomcat进行压测时,cpu占用90%

    1.top 命令查看占用cpu高的进程,pid=15019 2.查看该进程下所有占用cppu高的线程 top -Hp pid   即:top -Hp 15019 得到pid 3.获取15030的16进 ...