加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 下载数据时如何阻止NLTK输出到终端?

发布时间:2020-12-20 12:04:30 所属栏目:Python 来源:网络整理
导读:当我运行我正在使用的程序时: nltk.download('wordnet')from nltk.corpus import wordnet 我得到以下输出到我的终端: [nltk_data] Downloading package wordnet to[nltk_data] /Users/.../nltk_data...[nltk_data] Package wordnet is already up-to-date!
当我运行我正在使用的程序时:

nltk.download('wordnet')
from nltk.corpus import wordnet

我得到以下输出到我的终端:

[nltk_data] Downloading package wordnet to
[nltk_data]     /Users/.../nltk_data...
[nltk_data]   Package wordnet is already up-to-date!

我的程序依赖于没有将这些信息保存到终端和生成的输出文件,那么如何防止上述行发生,或者将其写入sys.stderr以便它不会被包含而不是通过打印?

解决方法

根据 source code,nltk下载程序使用简单的print()调用来报告进度.这意味着没有涉及可以控制或预配置的记录器.

其中一个选项是暂时修改sys.stdout –
?Python 3.4中有redirect_stdout() context manager:

from contextlib import redirect_stdout
import os

import nltk
from nltk.corpus import wordnet


with redirect_stdout(open(os.devnull,"w")):
    nltk.download('wordnet')

或者其他一些选择:

> Suppress calls to print (python)
> Silence the stdout of a function in Python without trashing sys.stdout and restoring each function call

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读