Maison > développement back-end > Tutoriel Python > Comment puis-je supprimer la sortie détaillée des sous-processus en Python ?

Comment puis-je supprimer la sortie détaillée des sous-processus en Python ?

Mary-Kate Olsen
Libérer: 2024-12-09 00:33:11
original
1037 Les gens l'ont consulté

How Can I Suppress Verbose Output from Subprocesses in Python?

Étouffement des sorties excessives des sous-processus

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.

Redirection de la sortie pour Python 3.3

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)
Copier après la connexion

Redirection de la sortie pour Python 2 et inférieur

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)
Copier après la connexion

Équivalent de script Shell

L'équivalent en ligne de commande du code Python ci-dessus est :

retcode = os.system("echo 'foo' >& /dev/null")
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal