- À propos de os.system()
- Syntaxe et fonctionnement de os.system()
- Exécuter une commande système simple
- Exécuter des commandes sous Windows
- Exécuter des commandes sous Linux et macOS
- Récupérer le code de retour d'une commande
- Construire une commande avec des variables Python
- Exécuter plusieurs commandes système
- Précautions et limites de os.system()
- A retenir !
1. À propos de os.system()
Le module os de Python fournit différentes fonctions permettant d'interagir avec le système d'exploitation. Parmi elles, la fonction os.system() permet d'exécuter une commande système depuis un programme Python.
Une commande passée à os.system() est transmise à l'interpréteur de commandes du système. Il est ainsi possible d'exécuter depuis Python certaines commandes que nous pourrions normalement saisir dans CMD, PowerShell ou un terminal Linux/macOS.
Pour utiliser os.system(), nous devons commencer par importer le module os. Le programme suivant charge ce module puis affiche un message.
1 2 3 | import os print("Module os chargé.") |
Sortie :
1 | Module os chargé. |
2. Syntaxe et fonctionnement de os.system()
La fonction os.system() reçoit comme argument une chaîne de caractères contenant la commande système à exécuter. Sa syntaxe générale est la suivante.
1 | os.system("commande") |
Sortie :
1 | La sortie dépend de la commande exécutée. |
Par exemple, la commande echo permet d'afficher du texte dans le terminal. Nous pouvons l'exécuter directement depuis Python.
1 2 3 | import os os.system("echo Bonjour Python") |
Sortie :
1 | Bonjour Python |
La commande est exécutée par le système d'exploitation et sa sortie apparaît normalement directement dans le terminal.
3. Exécuter une commande système simple
La fonction os.system() peut exécuter les commandes disponibles sur le système. Certaines commandes existent sur plusieurs systèmes d'exploitation, tandis que d'autres sont spécifiques à Windows, Linux ou macOS.
La commande echo constitue un exemple simple puisqu'elle permet d'afficher un message depuis l'interpréteur de commandes.
1 2 3 4 | import os commande = "echo Apprendre Python avec os.system" os.system(commande) |
Sortie :
1 | Apprendre Python avec os.system |
Nous pouvons également demander au système d'afficher sa version. Sous Windows, la commande ver fournit cette information.
1 2 3 | import os os.system("ver") |
Sortie possible sous Windows :
1 | Microsoft Windows [version 10.0.xxxxx.xxxx] |
4. Exécuter des commandes sous Windows
Sous Windows, os.system() peut exécuter les commandes reconnues par l'interpréteur de commandes. La commande dir permet par exemple d'afficher le contenu du dossier courant.
1 2 3 | import os os.system("dir") |
Sortie possible :
1 2 3 4 5 6 | Répertoire de C:\Users\Utilisateur\Documents cours.txt programme.py documents images |
Une autre commande Windows courante est cls, qui permet d'effacer le contenu affiché dans le terminal.
1 2 3 | import os os.system("cls") |
Sortie :
1 | Le contenu visible du terminal est effacé. |
Il est également possible de créer un dossier avec la commande système mkdir. Dans l'exemple suivant, nous créons un dossier nommé python.
1 2 3 4 | import os os.system("mkdir python") print("Commande exécutée.") |
Sortie :
1 | Commande exécutée. |
5. Exécuter des commandes sous Linux et macOS
Sous Linux et macOS, nous pouvons également utiliser os.system() pour exécuter les commandes disponibles dans le shell. La commande ls permet par exemple d'afficher le contenu du dossier courant.
1 2 3 | import os os.system("ls") |
Sortie possible :
1 2 3 4 | cours.txt documents images programme.py |
La commande pwd permet d'afficher le chemin du répertoire courant sous Linux et macOS.
1 2 3 | import os os.system("pwd") |
Sortie possible :
1 | /home/utilisateur/documents |
Pour effacer le terminal sous Linux ou macOS, nous pouvons utiliser la commande clear.
1 2 3 | import os os.system("clear") |
Sortie :
1 | Le contenu visible du terminal est effacé. |
6. Récupérer le code de retour d'une commande
La fonction os.system() renvoie une valeur permettant d'obtenir des informations sur la fin de l'exécution de la commande. Cette valeur est un code de retour fourni par le système.
Le programme suivant stocke la valeur renvoyée par os.system() dans la variable code.
1 2 3 4 | import os code = os.system("echo Bonjour") print("Code retourné :", code) |
Sortie courante lorsque la commande réussit :
1 2 | Bonjour Code retourné : 0 |
Un résultat correspondant à une exécution réussie est généralement associé à un statut de sortie égal à 0. Cependant, la valeur exacte renvoyée directement par os.system() et son interprétation peuvent dépendre du système d'exploitation.
7. Construire une commande avec des variables Python
Une commande système peut être construite à partir de variables Python. Cela permet de modifier dynamiquement la commande exécutée par os.system().
Dans l'exemple suivant, le nom du dossier est stocké dans une variable Python puis utilisé pour construire une commande mkdir.
1 2 3 4 5 6 7 | import os dossier = "mon_projet" commande = "mkdir " + dossier os.system(commande) print("Dossier créé :", dossier) |
Sortie :
1 | Dossier créé : mon_projet |
Cette construction est pratique lorsque les paramètres de la commande sont produits par le programme lui-même. En revanche, une donnée provenant directement d'un utilisateur ne doit pas être insérée sans contrôle dans une commande os.system(), car elle pourrait modifier la commande exécutée.
8. Exécuter plusieurs commandes système
Un programme Python peut appeler os.system() plusieurs fois afin d'exécuter successivement plusieurs commandes système.
Le programme suivant crée un dossier puis affiche le contenu du répertoire courant sous Windows.
1 2 3 4 | import os os.system("mkdir projet_python") os.system("dir") |
Sortie possible sous Windows :
1 2 3 4 5 | Répertoire de C:\Users\Utilisateur\Documents cours.txt programme.py projet_python |
Nous pouvons également stocker plusieurs commandes dans une liste puis les exécuter successivement avec une boucle for.
1 2 3 4 5 6 7 8 9 10 | import os commandes = [ "echo Première commande", "echo Deuxième commande", "echo Troisième commande" ] for commande in commandes: os.system(commande) |
Sortie :
1 2 3 | Première commande Deuxième commande Troisième commande |
9. Précautions et limites de os.system()
La fonction os.system() est simple à utiliser, mais elle doit être employée avec précaution. Une commande système peut créer, modifier ou supprimer des fichiers et effectuer d'autres opérations importantes sur l'ordinateur.
Il faut surtout éviter de construire directement une commande à partir d'une saisie utilisateur non contrôlée. L'exemple suivant illustre une pratique à éviter lorsque la valeur provient d'un utilisateur non fiable.
1 2 3 4 | import os nom = input("Nom du dossier : ") os.system("mkdir " + nom) |
Sortie possible :
1 | Nom du dossier : documents |
Le problème vient du fait que le texte saisi est transmis à l'interpréteur de commandes. Une saisie spécialement construite pourrait alors provoquer l'exécution d'une commande différente de celle prévue.
Pour les programmes modernes nécessitant l'exécution de commandes externes, le module subprocess est généralement préférable. Il offre davantage de contrôle sur les arguments, les sorties et les erreurs et permet notamment d'éviter l'utilisation du shell dans de nombreux cas.
Par exemple, pour exécuter une commande avec des arguments séparés, nous pouvons utiliser subprocess.run(). Ici, les éléments de la commande sont fournis sous forme de liste.
1 2 3 | import subprocess subprocess.run(["python", "--version"]) |
Sortie possible :
1 | Python 3.13.7 |
La version exacte affichée dépend naturellement de la version de Python installée sur l'ordinateur.
10. A retenir !
La fonction os.system() permet d'exécuter simplement une commande système depuis un programme Python.
- os.system("commande") transmet une commande à l'interpréteur de commandes du système.
- La sortie de la commande apparaît généralement directement dans le terminal.
- dir permet d'afficher le contenu d'un dossier sous Windows.
- ls permet d'afficher le contenu d'un dossier sous Linux et macOS.
- cls efface le terminal sous Windows.
- clear efface le terminal sous Linux et macOS.
- os.system() renvoie une valeur liée au statut de fin de la commande.
- Une commande peut être construite à partir de variables Python lorsque les données utilisées sont maîtrisées.
- Il faut éviter d'insérer directement une saisie utilisateur non fiable dans une commande système.
- Pour des besoins plus avancés, subprocess.run() est généralement préférable à os.system().
Le programme suivant montre un exemple simple qui choisit automatiquement une commande selon le système d'exploitation grâce à os.name.
1 2 3 4 5 6 | import os if os.name == "nt": os.system("dir") else: os.system("ls") |
Sortie possible :
1 2 3 4 | cours.txt documents images programme.py |
Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


