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

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

Mary-Kate Olsen
Libérer: 2025-01-04 02:09:10
original
633 Les gens l'ont consulté

How Can I Capture and Return Shell Command Output as a String in Python?

Capturer la sortie d'une commande Shell sous forme de chaîne

Problème :

Capturer la sortie d'une commande Shell et la renvoyer sous forme une chaîne, qu'il s'agisse d'un message d'erreur ou de réussite.

Python 3.5 et Supérieur (moderne) :

import subprocess

def run_command(cmd):
    result = subprocess.run(cmd, stdout=subprocess.PIPE, shell=True)
    return result.stdout.decode('utf-8')

print(run_command('mysqladmin create test -uroot -pmysqladmin12'))
# Example Output:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
Copier après la connexion

Python 2.7 - 3.4 (héritage) :

import subprocess

def run_command(cmd):
    output = subprocess.check_output(cmd, shell=True)
    return output

print(run_command('mysqladmin create test -uroot -pmysqladmin12'))
# Example Output:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
Copier après la connexion

Popen Objects (applications complexes et Python 2.6 et Ci-dessous) :

import subprocess

def run_command(cmd):
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
    output, error = p.communicate()
    return output

print(run_command('mysqladmin create test -uroot -pmysqladmin12'))
# Example Output:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
Copier après la connexion

Remarque :

  • Le code devra peut-être être modifié pour gérer des environnements ou des scénarios de shell spécifiques.
  • L'exécution de commandes shell introduit directement des risques de sécurité potentiels. Il est recommandé d'utiliser la méthode d'exécution la plus sûre ou de séparer l'exécution de chaque commande et de diriger la sortie manuellement.

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