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
Libérer: 2024-12-23 06:36:34
original
666 Les gens l'ont consulté

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

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

import subprocess

output = subprocess.check_output(['ls', '-l'])
Copier après la connexion

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

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