Maison >développement back-end >Tutoriel Python >Comment puis-je capturer silencieusement le résultat d'une commande en Python ?

Comment puis-je capturer silencieusement le résultat d'une commande en Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-05 16:30:11758parcourir

How Can I Silently Capture Command Output in Python?

Capture silencieuse de la sortie de commande avec Python

Lors de l'exécution de commandes avec os.system, vous pouvez rencontrer des situations dans lesquelles vous souhaitez capturer la sortie sans en l'affichant à l'écran. Voici comment procéder :

En Python, la fonction os.system exécute une commande et renvoie son état de sortie. Cependant, il imprime également le résultat de la commande sur la console. Pour capturer la sortie en silence, utilisez plutôt le module de sous-processus.

Utilisation de os.popen

La fonction os.popen peut être utilisée pour exécuter des commandes et capturer leur sortie. Il renvoie un objet tube qui peut être utilisé pour lire la sortie. Par exemple :

output = os.popen('cat /etc/services').read()
print(output)

Utilisation des sous-processus

Le module de sous-processus offre un moyen plus puissant de gérer et d'interagir avec les sous-processus. Voici comment capturer silencieusement le résultat d'une commande à l'aide d'un sous-processus :

import subprocess

proc = subprocess.Popen([
    'cat', '/etc/services'
], stdout=subprocess.PIPE, shell=True)

(output, err) = proc.communicate()
print('program output:', output)

Cette approche vous permet de contrôler divers aspects de l'exécution du sous-processus, tels que l'entrée, la sortie et la gestion des erreurs. La méthode de communication attend la fin du sous-processus et renvoie un tuple contenant les flux de sortie standard et d'erreur standard.

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:
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