最近跑程序时经常会出现一些warning或者第三方库的一些日志输出,这些东西有时会影响到其他程序对Python脚本的输出的读取。下面记录遇到的几种情况和对应的解决方案。
jieba 的日志输出
使用jieba的时候,会遇到以下情况:
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\hello\AppData\Local\Temp\jieba.cache
Loading model cost 0.888 seconds.
Prefix dict has been built succesfully.
这种情况,把日志关闭就可以了。
logging日志有5种级别,
从低到高是
1 DEBUG
2 INFO
3 WARNING
4 ERROR
5 CRITICAL
这里只要比debug的级别高,就可以屏蔽debug级别的输出。
import logging
jieba.setLogLevel(logging.INFO)
gensim warning
使用gensim的时候遇到了以下两种警告
C:\Users\hello\AppData\Local\Programs\Python\Python36\lib\site-packages\gensim\utils.py:1212: UserWarning: detected Windows; aliasing chunkize to chunkize_serial
warnings.warn("detected Windows; aliasing chunkize to chunkize_serial")
C:\Users\hello\AppData\Local\Programs\Python\Python36\lib\site-packages\gensim\matutils.py:718: FutureWarning: Conversion of the second argument of issubdtype from `int` to `np.signedinteger` is deprecated. In future, it will be treated as `np.int32 == np.dtype(int).type`.
if np.issubdtype(vec.dtype, np.int):
解决方案:
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim')
warnings.filterwarnings(action='ignore', category=FutureWarning, module='gensim')
关于这个方法的官方文档:
tensorflow 警告
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]='1'
# 默认的显示等级,显示所有信息
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2'
# 只显示 warning 和 Error
os.environ["TF_CPP_MIN_LOG_LEVEL"]='3'
# 只显示 Error
通常把 level设成2,就会屏蔽警告信息了。