- À propos de la détection de Windows, Linux ou macOS avec le module platform
- Détecter le système d'exploitation avec platform.system()
- Détecter Windows avec Python
- Détecter Linux avec Python
- Détecter macOS avec Python
- Créer un programme compatible avec Windows, Linux et macOS
- Obtenir la version du système détecté
- Adapter automatiquement un programme au système d'exploitation
- Créer une fonction réutilisable de détection du système
- À retenir !
1. À propos de la détection de Windows, Linux ou macOS avec le module platform
Un programme Python peut être exécuté sous différents systèmes d'exploitation. Il peut fonctionner sous Windows, Linux, macOS ou encore sur d'autres plateformes. Dans certaines situations, le programme doit connaître le système utilisé afin d'adapter automatiquement son comportement.
Le module standard platform de Python fournit plusieurs fonctions permettant d'obtenir des informations sur le système d'exploitation et l'environnement d'exécution. La fonction la plus adaptée pour identifier le système est platform.system().
Le module platform appartient à la bibliothèque standard de Python. Il n'est donc pas nécessaire de l'installer avec pip. Il suffit de l'importer.
1 2 3 | import platform print("Module platform importé avec succès.") |
Sortie :
1 | Module platform importé avec succès. |
La détection du système est notamment utile pour créer des programmes multiplateformes, choisir des chemins de fichiers adaptés, exécuter certaines commandes spécifiques ou afficher des informations de diagnostic.
2. Détecter le système d'exploitation avec platform.system()
La fonction platform.system() retourne une chaîne de caractères contenant le nom du système d'exploitation sur lequel Python est exécuté.
Le programme suivant récupère puis affiche cette information.
1 2 3 4 5 | import platform systeme = platform.system() print("Système détecté :", systeme) |
Sortie possible sous Windows :
1 | Système détecté : Windows |
Sur un ordinateur Linux, le même programme peut produire la sortie suivante.
1 2 3 | import platform print("Système détecté :", platform.system()) |
Sortie possible sous Linux :
1 | Système détecté : Linux |
Sur un ordinateur utilisant macOS, la valeur retournée n'est pas "macOS", mais Darwin.
1 2 3 | import platform print("Système détecté :", platform.system()) |
Sortie possible sous macOS :
1 | Système détecté : Darwin |
Il est donc important de retenir la correspondance suivante : Windows retourne "Windows", Linux retourne "Linux" et macOS retourne "Darwin".
3. Détecter Windows avec Python
Pour déterminer si un programme est exécuté sous Windows, il suffit de comparer la valeur retournée par platform.system() avec la chaîne "Windows".
1 2 3 4 5 6 | import platform if platform.system() == "Windows": print("Vous utilisez Windows.") else: print("Le système utilisé n'est pas Windows.") |
Sortie possible sous Windows :
1 | Vous utilisez Windows. |
Nous pouvons stocker le système dans une variable lorsque cette information doit être utilisée plusieurs fois dans le programme.
1 2 3 4 5 6 7 | import platform systeme = platform.system() if systeme == "Windows": print("Windows détecté") print("Le programme peut utiliser les traitements spécifiques à Windows.") |
Sortie possible sous Windows :
1 2 | Windows détecté Le programme peut utiliser les traitements spécifiques à Windows. |
Cette technique permet d'isoler facilement les portions de programme destinées uniquement à Windows.
4. Détecter Linux avec Python
La détection de Linux fonctionne de la même manière. La fonction platform.system() retourne normalement la chaîne "Linux" lorsque Python est exécuté sur un système Linux.
1 2 3 4 5 6 | import platform if platform.system() == "Linux": print("Vous utilisez Linux.") else: print("Le système utilisé n'est pas Linux.") |
Sortie possible sous Linux :
1 | Vous utilisez Linux. |
Nous pouvons également récupérer des informations complémentaires avec platform.release() et platform.machine().
1 2 3 4 5 6 | import platform if platform.system() == "Linux": print("Système : Linux") print("Noyau :", platform.release()) print("Machine :", platform.machine()) |
Sortie possible :
1 2 3 | Système : Linux Noyau : 6.8.0-52-generic Machine : x86_64 |
La valeur retournée par platform.release() dépend de la version du noyau Linux installée sur la machine.
5. Détecter macOS avec Python
La détection de macOS demande une attention particulière. La fonction platform.system() retourne Darwin et non "macOS".
Pour détecter macOS, il faut donc effectuer la comparaison avec la chaîne "Darwin".
1 2 3 4 5 6 | import platform if platform.system() == "Darwin": print("Vous utilisez macOS.") else: print("Le système utilisé n'est pas macOS.") |
Sortie possible sous macOS :
1 | Vous utilisez macOS. |
Le module platform possède également la fonction platform.mac_ver(), qui permet d'obtenir des informations spécifiques à macOS.
1 2 3 4 5 6 | import platform if platform.system() == "Darwin": version = platform.mac_ver()[0] print("Système : macOS") print("Version :", version) |
Sortie possible :
1 2 | Système : macOS Version : 15.0 |
La version affichée dépend naturellement de la version de macOS installée sur l'ordinateur.
6. Créer un programme compatible avec Windows, Linux et macOS
Pour distinguer les trois principaux systèmes dans un même programme, nous pouvons utiliser une structure conditionnelle if / elif / else.
Le programme suivant détecte automatiquement Windows, Linux ou macOS et affiche un message correspondant.
1 2 3 4 5 6 7 8 9 10 11 12 | import platform systeme = platform.system() if systeme == "Windows": print("Système détecté : Windows") elif systeme == "Linux": print("Système détecté : Linux") elif systeme == "Darwin": print("Système détecté : macOS") else: print("Autre système détecté :", systeme) |
Sortie possible sous Windows :
1 | Système détecté : Windows |
Le même code exécuté sous Linux produit automatiquement un résultat différent.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import platform systeme = platform.system() if systeme == "Windows": nom = "Windows" elif systeme == "Linux": nom = "Linux" elif systeme == "Darwin": nom = "macOS" else: nom = systeme print("Vous utilisez :", nom) |
Sortie possible sous Linux :
1 | Vous utilisez : Linux |
Cette structure constitue une base simple pour créer des applications Python multiplateformes.
7. Obtenir la version du système détecté
Identifier uniquement Windows, Linux ou macOS n'est pas toujours suffisant. Le module platform permet également d'obtenir la release et la version du système.
Le programme suivant affiche le système, sa release et sa version.
1 2 3 4 5 | import platform print("Système :", platform.system()) print("Release :", platform.release()) print("Version :", platform.version()) |
Sortie possible sous Windows :
1 2 3 | Système : Windows Release : 10 Version : 10.0.19045 |
Nous pouvons combiner ces informations avec la détection du système afin de produire un message adapté.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import platform systeme = platform.system() release = platform.release() if systeme == "Windows": print("Windows détecté") print("Release :", release) elif systeme == "Linux": print("Linux détecté") print("Noyau :", release) elif systeme == "Darwin": print("macOS détecté") print("Release Darwin :", release) else: print("Système :", systeme) print("Release :", release) |
Sortie possible sous Linux :
1 2 | Linux détecté Noyau : 6.8.0-52-generic |
Pour obtenir un résumé global supplémentaire, nous pouvons utiliser platform.platform().
1 2 3 4 | import platform print("Système :", platform.system()) print("Résumé :", platform.platform()) |
Sortie possible :
1 2 | Système : Windows Résumé : Windows-10-10.0.19045-SP0 |
8. Adapter automatiquement un programme au système d'exploitation
La détection du système devient particulièrement intéressante lorsque certaines opérations diffèrent entre Windows, Linux et macOS. Le programme peut alors sélectionner automatiquement le traitement adapté.
Un exemple simple concerne le séparateur habituellement utilisé dans les chemins de fichiers. Nous pouvons afficher le type de chemin attendu selon le système détecté.
1 2 3 4 5 6 7 8 9 10 11 12 | import platform systeme = platform.system() if systeme == "Windows": print("Exemple de chemin : C:\\Users\\Utilisateur\\Documents") elif systeme == "Linux": print("Exemple de chemin : /home/utilisateur/Documents") elif systeme == "Darwin": print("Exemple de chemin : /Users/utilisateur/Documents") else: print("Système non reconnu :", systeme) |
Sortie possible sous Windows :
1 | Exemple de chemin : C:\Users\Utilisateur\Documents |
Pour manipuler réellement des chemins dans une application multiplateforme, il est toutefois préférable d'utiliser pathlib plutôt que de construire manuellement les chemins en fonction du système.
Un autre exemple consiste à sélectionner une valeur de configuration différente selon le système.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import platform systeme = platform.system() if systeme == "Windows": dossier_configuration = "configuration_windows" elif systeme == "Linux": dossier_configuration = "configuration_linux" elif systeme == "Darwin": dossier_configuration = "configuration_macos" else: dossier_configuration = "configuration_generique" print("Configuration :", dossier_configuration) |
Sortie possible sous macOS :
1 | Configuration : configuration_macos |
La détection du système permet ainsi d'adapter certains paramètres sans demander à l'utilisateur d'indiquer manuellement son environnement.
9. Créer une fonction réutilisable de détection du système
Lorsque la détection du système doit être utilisée plusieurs fois, il est préférable de créer une fonction réutilisable. Celle-ci peut convertir automatiquement la valeur "Darwin" en un nom plus compréhensible comme "macOS".
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import platform def detecter_systeme(): systeme = platform.system() if systeme == "Windows": return "Windows" elif systeme == "Linux": return "Linux" elif systeme == "Darwin": return "macOS" else: return systeme print("Système :", detecter_systeme()) |
Sortie possible sous Windows :
1 | Système : Windows |
Nous pouvons enrichir cette fonction afin qu'elle retourne plusieurs informations dans un dictionnaire.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import platform def informations_systeme(): systeme = platform.system() if systeme == "Darwin": nom = "macOS" else: nom = systeme return { "systeme": nom, "release": platform.release(), "version": platform.version(), "machine": platform.machine() } infos = informations_systeme() for cle, valeur in infos.items(): print(f"{cle} : {valeur}") |
Sortie possible sous Windows :
1 2 3 4 | systeme : Windows release : 10 version : 10.0.19045 machine : AMD64 |
Nous pouvons enfin utiliser la fonction de détection pour exécuter un traitement différent selon le système.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import platform def detecter_systeme(): systeme = platform.system() if systeme == "Darwin": return "macOS" return systeme systeme = detecter_systeme() if systeme == "Windows": print("Chargement des paramètres Windows...") elif systeme == "Linux": print("Chargement des paramètres Linux...") elif systeme == "macOS": print("Chargement des paramètres macOS...") else: print("Chargement des paramètres génériques...") |
Sortie possible sous Linux :
1 | Chargement des paramètres Linux... |
Cette organisation permet de centraliser la détection du système d'exploitation et facilite la maintenance d'une application destinée à plusieurs plateformes.
10. À retenir !
Le module platform permet de détecter facilement le système d'exploitation sur lequel un programme Python est exécuté. Pour distinguer Windows, Linux et macOS, la fonction la plus directe est platform.system().
- platform.system() retourne le nom du système d'exploitation.
- Sous Windows, platform.system() retourne généralement "Windows".
- Sous Linux, platform.system() retourne généralement "Linux".
- Sous macOS, platform.system() retourne "Darwin".
- Une structure if / elif / else permet d'exécuter un traitement différent selon le système détecté.
- platform.release() permet d'obtenir la release du système.
- platform.version() fournit des informations complémentaires sur sa version.
- platform.machine() renseigne sur le type de machine ou l'architecture rapportée par le système.
- platform.platform() fournit une chaîne descriptive plus globale de la plateforme.
- platform.mac_ver() fournit des informations spécifiques à macOS.
- Pour manipuler des chemins de manière multiplateforme, il est généralement préférable d'utiliser pathlib plutôt que de construire les chemins manuellement.
- Une fonction personnalisée peut convertir "Darwin" en "macOS" afin de produire un résultat plus compréhensible pour l'utilisateur.
Le programme suivant résume la méthode essentielle permettant de détecter Windows, Linux ou macOS avec Python.
1 2 3 4 5 6 7 8 9 10 11 12 | import platform systeme = platform.system() if systeme == "Windows": print("Vous utilisez Windows.") elif systeme == "Linux": print("Vous utilisez Linux.") elif systeme == "Darwin": print("Vous utilisez macOS.") else: print("Autre système :", systeme) |
Sortie possible sous Windows :
1 | Vous utilisez Windows. |
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/


