下载数据时如何阻止NLTK输出到终端?
当我运行我的程序,这是使用:下载数据时如何阻止NLTK输出到终端?
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
,因此它不会被包含而不是通过print
?
回答:
根据source code,nltk
下载程序使用直接调用print()
调用来报告进度。这意味着没有可以控制或预先配置的记录器。
其中一个选项是临时修改sys.stdout
上飞 - 还有就是在Python redirect_stdout()
context manager 3.4+:
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
回答:
使用quiet=True
:
import nltk nltk.download('wordnet', quiet=True)
以上是 下载数据时如何阻止NLTK输出到终端? 的全部内容, 来源链接: utcz.com/qa/259384.html