Comment masquer la sortie du sous-processus dans Python 2.7

Je suis en utilisant eSpeak sur Ubuntu et avoir un Python 2.7 script qui imprime et parle un message:

import subprocess
text = 'Hello World.'
print text
subprocess.call(['espeak', text])

eSpeak produit les sons désirés, mais encombre la coque, avec quelques erreurs (ALSA lib..., pas de prise connect) donc je ne peux pas lire facilement ce qui a été imprimé plus tôt. Code de sortie est de 0.

Malheureusement, il n'existe aucune preuve de l'option pour désactiver sa verbosité, donc je suis à la recherche d'un moyen pour que visuellement, le silence et de garder la coquille ouverte propre pour plus d'interaction.

Comment puis-je faire cela?

  • vous ne pourriez pas vous suffit d'appeler avec des os.système alors? pas l'idéal, mais ne devriez pas l'impression que je ne pense pas que les
  • os.system() imprime à la console, sauf si vous rediriger la commande shell
  • non, os.système (espeak '+ texte) reproduit ce comportement.
  • J'ai mis à jour ma réponse aussi de montrer la os.system de la syntaxe. Si c'est juste pour l'illustration. Stick avec des sous-processus
  • bonne correction ... c'est votre droit ... pour une raison que je me suis souvenu tort de penser que les os.le système n'a pas l'impression ...
  • Non 2.7 version spécifique: stackoverflow.com/questions/5495078/... qui permet la parfaite subprocess.DEVNUL solution.

InformationsquelleAutor rypel | 2012-06-29