Maison >développement back-end >Tutoriel Python >Comment puis-je capturer et stocker la sortie d'un appel subprocess.Popen sous forme de chaîne en Python ?

Comment puis-je capturer et stocker la sortie d'un appel subprocess.Popen sous forme de chaîne en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-04 19:07:14351parcourir

How Can I Capture and Store the Output of a subprocess.Popen Call as a String in Python?

Stockage de la sortie du subprocess.Popen Call dans une chaîne

En programmation Python, l'utilisation du module subprocess vous permet d'exécuter des appels système et de capturer leur production. Cet article fournit des solutions pour stocker la sortie d'un appel subprocess.Popen dans une variable de chaîne.

Solution pour Python 2.7 ou Python 3

Python fournit le subprocess.check_output (), spécialement conçue pour capturer la sortie d’une commande dans une chaîne. Utilisez-le simplement comme suit :

from subprocess import check_output
out = check_output(["ntpq", "-p"])

Solution pour Python 2.4-2.6

Pour les versions Python 2.4 à 2.6, vous pouvez utiliser la méthode de communication de Popen :

import subprocess
p = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE)
out, err = p.communicate()

La variable out dans le code ci-dessus contient le sortie.

Remarque concernant la saisie de la commande

Lors de l'utilisation de Popen, il est crucial de transmettre la commande sous forme de liste de chaînes, comme indiqué dans les exemples fournis. C'est parce que Popen n'invoque pas le shell.

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