Maison >développement back-end >Tutoriel Python >Comment puis-je supprimer la sortie détaillée des sous-processus en Python ?
De nombreux outils de ligne de commande, tels qu'eSpeak, affichent une sortie détaillée ainsi que les actions prévues. Cela peut encombrer le shell, rendant difficile la lecture de la sortie précédente ou l'interaction avec l'invite.
Pour les scripts Python qui appellent de tels outils à l'aide du module de sous-processus, la désactivation de leur sortie peut améliorer la lisibilité et la convivialité. Une méthode efficace consiste à rediriger la sortie standard (STDOUT) et l'erreur standard (STDERR) vers un périphérique nul.
Pour les versions 3.3 et supérieures de Python, le module de sous-processus fournit la constante DEVNULL en tant que périphérique nul. En passant DEVNULL aux arguments stdout et stderr de subprocess.call(), la sortie du sous-processus est effectivement supprimée.
import subprocess subprocess.call(['echo', 'foo'], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
Dans les versions antérieures de Python, y compris 2.7, la constante DEVNULL n'est pas disponible. Au lieu de cela, on peut ouvrir manuellement un périphérique nul et y rediriger.
import os FNULL = open(os.devnull, 'w') subprocess.call(['echo', 'foo'], stdout=FNULL, stderr=subprocess.STDOUT)
L'équivalent en ligne de commande du code Python ci-dessus est :
retcode = os.system("echo 'foo' >& /dev/null")
En utilisant ces techniques, vous pouvez faire taire la sortie détaillée des sous-processus de vos scripts Python, en gardant le shell propre et en améliorant la lisibilité pour une interaction ultérieure.
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!