Maison >développement back-end >Tutoriel Python >Comment puis-je capturer la sortie d'une commande shell sous forme de chaîne en Python ?

Comment puis-je capturer la sortie d'une commande shell sous forme de chaîne en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-23 06:36:34613parcourir

How can I capture shell command output as a string in Python?

Capturer la sortie des commandes en Python

Problème : Exécuter des commandes shell et capturer leur sortie sous forme de chaîne, quel que soit le succès ou l'échec.

Solution :

Dans les versions modernes de Python (3.5 ou supérieur), utilisez la fonction subprocess.run avec l'indicateur stdout=subprocess.PIPE :

import subprocess

result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
output = result.stdout.decode('utf-8')

Dans les anciennes versions de Python (3-3.4), utilisez la fonction subprocess.check_output :

import subprocess

output = subprocess.check_output(['ls', '-l'])

Pour les scénarios plus complexes impliquant une saisie dans la commande ou une gestion des erreurs, utilisez la classe subprocess.Popen avec la classe communicate méthode :

import subprocess

p = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = p.communicate()

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