Maison > développement back-end > Tutoriel Python > Comment puis-je exécuter silencieusement un sous-processus en Python sur Ubuntu et supprimer sa sortie ?

Comment puis-je exécuter silencieusement un sous-processus en Python sur Ubuntu et supprimer sa sortie ?

DDD
Libérer: 2024-12-11 03:54:15
original
491 Les gens l'ont consulté

How Can I Silently Run a Subprocess in Python on Ubuntu and Suppress its Output?

Silence de la sortie du sous-processus sur Ubuntu

Dans le script Python fourni, eSpeak encombre le shell avec des messages d'erreur indésirables. Le but est de supprimer cette sortie tout en préservant la réponse audible souhaitée. Bien qu'il n'ait pas été possible de supprimer directement la verbosité d'eSpeak, il existe une solution pour faire taire visuellement sa sortie.

Redirection de la sortie en Python >= 3.3

Pour masquer efficacement la sortie, redirigez-la vers un périphérique null utilisant l'attribut DEVNULL :

import subprocess

subprocess.call(['echo', 'foo'],
    stdout=subprocess.DEVNULL,
    stderr=subprocess.STDOUT)
Copier après la connexion

Redirection de la sortie en Python < 3.3

Pour les versions antérieures à Python 3.3, utilisez l'approche suivante :

import os
FNULL = open(os.devnull, 'w')
subprocess.call(['echo', 'foo'],
    stdout=FNULL,
    stderr=subprocess.STDOUT)
Copier après la connexion

Similarités avec la commande Shell

La solution fournie est similaire à l'exécution de la commande shell suivante :

retcode = os.system("echo 'foo' > /dev/null")

En redirigeant la sortie vers /dev/null, l'encombrement est effectivement masqué, laissant le shell propre pour d'autres interactions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal