Maison >développement back-end >Tutoriel Python >Comment puis-je capturer la sortie d'une commande shell sous forme de chaîne 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!