Python >> Tutoriel Python >  >> Python Tag >> NLTK

Comment empêcher NLTK de sortir sur le terminal lors du téléchargement de données ?

Utilisez quiet=True :

import nltk
nltk.download('wordnet', quiet=True)

Une bien meilleure solution est suggérée dans cette réponse.

Ancienne réponse :

D'après le code source, nltk le téléchargeur utilise directement print() appelle pour signaler les progrès. Cela signifie qu'il n'y a pas d'enregistreur impliqué que vous pouvez contrôler ou préconfigurer.

Une des options est de modifier le sys.stdout temporairement à la volée - il y a ce redirect_stdout() gestionnaire de contexte en Python 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')

Ou d'autres options :

  • Supprimer les appels à imprimer (python)
  • Mettre au silence la sortie standard d'une fonction en Python sans supprimer sys.stdout et restaurer chaque appel de fonction