Il était courant d'utiliser os.system, mais il semble moderne d'utiliser un sous-processus. Référence: http://stackoverflow.com/questions/4813238/difference-between-subprocess-popen-and-os-system
import subprocess
cmd = 'myprogram myargs'
returncode = subprocess.call(cmd)
L'appel est suffisant pour les appels simples, mais il semble préférable d'utiliser Popen à des fins plus générales. Selon les références suivantes, Popen a l'avantage de ne pas bloquer l'exécution de la commande (= passer à la ligne suivante sans attendre la fin de la commande), et call est une implémentation de Popen avec un bloc de commande. Il semble. Référence: http://stackoverflow.com/questions/7681715/whats-the-difference-between-subprocess-popen-and-call-how-can-i-use-them
import subprocess
cmd = 'myprogram myargs'
returncode = subprocess.Popen(cmd)
Cependant, cela ne vous permet pas d'appeler les commandes intégrées de Windows telles que dir et echo. Lorsque j'essaye de l'appeler, j'obtiens l'erreur "Le fichier spécifié est introuvable". Référence: http://stackoverflow.com/questions/19819417/how-to-use-subprocess-in-windows
La solution est d'ajouter shell = True.
import subprocess
cmd = 'dir .'
returncode = subprocess.Popen(cmd, shell=True)
Comme mentionné dans le matériel de référence ci-dessus, si vous ajoutez shell = True sous Windows, l'invite de commande cmd.exe est en fait appelée et la commande est exécutée dessus. Si cette option n'est pas ajoutée ou si shell = False est spécifié, l'appel ne se produira que si le nom de fichier réel avec l'extension est spécifié.
La plupart des gens n'en ont probablement pas besoin, mais comme mentionné ci-dessus, puisque c'est l'invite de commande qui est appelée avec shell = True, diverses commandes shell qui peuvent être exécutées sur Powershell ne peuvent pas être appelées à partir d'un sous-processus.