La commande subprocess.run() permet d'éxécuter une commande Bash en Python :
import subprocess
result = subprocess.run("ls -al", capture_output=True, text=True)
Pour exécuter une commande Bash en Python, vous pouvez utiliser le module subprocess, qui fait partie de la bibliothèque standard de Python. Voici un exemple simple de la manière dont vous pouvez utiliser subprocess.run pour exécuter une commande Bash :
import subprocess
# Define the command as a list of arguments
command = ["ls", "-l"]
# Use subprocess.run to execute the command
result = subprocess.run(command, capture_output=True, text=True)
# Print the return code, stdout, and stderr
print("Return code:", result.returncode)
print("stdout:")
print(result.stdout)
print("stderr:")
print(result.stderr)
Dans cet exemple, subprocess.run exécute la commande ls -l. La sortie de la commande (stdout) et les éventuelles erreurs (stderr) sont capturées grâce à capture_output=True et text=True. Vous pouvez alors accéder à ces sorties via result.stdout et result.stderr.
Si vous avez besoin d'une plus grande compatibilité avec les fonctionnalités de Bash, comme l'utilisation de pipes (|), de redirections (>, <), ou de commandes multiples, vous pouvez passer l'argument shell=True et fournir la commande sous forme de chaîne unique :
import subprocess
# Define the command as a single string
command = "ls -l | grep py"
# Use subprocess.run with shell=True
result = subprocess.run(command, shell=True, capture_output=True, text=True)
# Print the return code, stdout, and stderr
print("Return code:", result.returncode)
print("stdout:")
print(result.stdout)
print("stderr:")
print(result.stderr)
Lorsque vous utilisez shell=True, soyez prudent avec les entrées externes pour éviter les vulnérabilités d'injection de commande.