Maison > développement back-end > Tutoriel Python > Comment puis-je récupérer la sortie du processus à partir de subprocess.call() ?

Comment puis-je récupérer la sortie du processus à partir de subprocess.call() ?

Linda Hamilton
Libérer: 2024-11-28 18:30:10
original
667 Les gens l'ont consulté

How Can I Retrieve Process Output from subprocess.call()?

Récupération de la sortie du processus de Subprocess.call()

La méthode subprocess.call() est un utilitaire polyvalent permettant d'exécuter des commandes et d'exécuter des processus dans un thread séparé. Bien que son objectif principal soit de lancer un processus sans attendre son achèvement, il peut arriver que vous ayez besoin d'accéder au résultat du processus exécuté. Cet article vise à répondre à ce besoin en explorant les techniques permettant de récupérer efficacement la sortie de subprocess.call().

Exploiter subprocess.check_output()

Pour les versions 2.7 et supérieures de Python, le module subprocess propose une solution simplifiée à cette tâche : subprocess.check_output(). Cette méthode permet spécifiquement d'extraire la sortie standard d'un appel de processus et de la renvoyer sous forme de chaîne.

Considérons l'exemple suivant :

import subprocess

output = subprocess.check_output(["ping", "-c", "1", "8.8.8.8"])
Copier après la connexion

Dans ce scénario, la commande ping initie un simple requête ping à l’adresse IP spécifiée. Le résultat de cette opération ping est capturé et stocké dans la variable de sortie sous forme de chaîne.

Gestion des besoins de sortie spécifiques

Dans certaines situations, vous pouvez avoir besoin d'un contrôle plus granulaire sur la gestion de la sortie du processus. . Dans de tels cas, vous pouvez utiliser les techniques suivantes :

  • Arguments stdout et stderr : Lors de l'appel de subprocess.call(), transmettez les objets StringIO pour les arguments stdout et stderr. Cela vous permet de capturer la sortie standard et l'erreur standard du processus dans ces objets.
  • Communication avec le processus : Utilisez la méthode communicate() des objets Popen pour interagir avec le processus en cours d'exécution. . Cela vous permet d'envoyer des entrées au processus et de récupérer à la fois ses flux de sortie standard et ses flux d'erreurs standard.

Conclusion

En utilisant les techniques susmentionnées, vous pouvez récupérer et gérer efficacement la sortie des processus lancés à l’aide de subprocess.call(). Que vous ayez besoin d'un moyen simple d'obtenir une sortie standard via subprocess.check_output() ou que vous ayez besoin d'un contrôle plus précis sur la gestion des sorties, ces méthodes vous permettent de répondre à vos exigences.

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