- À propos de platform.system() en Python
- Importer le module platform et identifier le système
- Comprendre les valeurs retournées par platform.system()
- Adapter un programme selon le système d'exploitation
- Distinguer Windows, Linux et macOS
- Associer platform.system() à platform.release()
- Obtenir davantage d'informations avec platform.platform()
- Créer une fonction de détection du système
- Utiliser platform.system() dans un programme multiplateforme
- À retenir !
1. À propos de platform.system() en Python
Le module platform de Python fournit plusieurs fonctions permettant d'obtenir des informations sur le système sur lequel un programme est exécuté. Parmi elles, platform.system() permet d'identifier simplement le système d'exploitation.
Cette fonction est particulièrement utile lorsque nous développons un programme destiné à fonctionner sur plusieurs plateformes. Le programme peut détecter automatiquement s'il s'exécute sous Windows, Linux ou macOS et adapter ensuite son comportement.
Le programme suivant importe le module platform puis affiche le système d'exploitation détecté.
1 2 3 | import platform print(platform.system()) |
Sortie possible :
1 | Windows |
Sur un ordinateur Windows, platform.system() retourne généralement la chaîne "Windows". Le résultat sera différent lorsque le programme est exécuté sur un autre système.
2. Importer le module platform et identifier le système
Le module platform appartient à la bibliothèque standard de Python. Il n'est donc normalement pas nécessaire d'installer un package supplémentaire avec pip pour utiliser platform.system().
Nous pouvons stocker le résultat retourné par la fonction dans une variable afin de le réutiliser dans la suite du programme.
1 2 3 4 | import platform systeme = platform.system() print("Système d'exploitation :", systeme) |
Sortie possible :
1 | Système d'exploitation : Windows |
La variable systeme contient ici une chaîne de caractères indiquant la famille du système d'exploitation détecté.
Nous pouvons également importer directement la fonction system() depuis le module platform.
1 2 3 4 | from platform import system nom_systeme = system() print(nom_systeme) |
Sortie possible :
1 | Linux |
Cette seconde écriture produit le même type d'information, mais permet d'appeler directement system() sans écrire le préfixe platform..
3. Comprendre les valeurs retournées par platform.system()
La fonction platform.system() retourne le nom du système sous forme de chaîne de caractères. Les valeurs couramment rencontrées sont notamment "Windows", "Linux" et "Darwin".
Le programme suivant affiche à la fois le résultat et son type Python.
1 2 3 4 5 | import platform systeme = platform.system() print("Valeur :", systeme) print("Type :", type(systeme)) |
Sortie possible :
1 2 | Valeur : Windows Type : <class 'str'> |
Le résultat est donc une chaîne str. Nous pouvons facilement le comparer à une autre chaîne dans une structure conditionnelle.
Un point important concerne macOS : la valeur retournée par platform.system() est généralement "Darwin" et non "macOS".
1 2 3 4 | import platform systeme = platform.system() print(systeme) |
Sortie possible sous macOS :
1 | Darwin |
Il faut donc tester la valeur "Darwin" lorsque nous souhaitons identifier macOS avec cette fonction.
4. Adapter un programme selon le système d'exploitation
Une utilisation fréquente de platform.system() consiste à associer son résultat à une structure conditionnelle if. Le programme peut alors effectuer une opération différente selon le système détecté.
Le programme suivant affiche un message spécifique lorsque le système est Windows.
1 2 3 4 5 6 7 8 | import platform systeme = platform.system() if systeme == "Windows": print("Le programme fonctionne sous Windows.") else: print("Le programme ne fonctionne pas sous Windows.") |
Sortie possible :
1 | Le programme fonctionne sous Windows. |
Cette technique peut être utilisée lorsque certaines commandes, certains chemins ou certains traitements dépendent du système d'exploitation.
Nous pouvons également comparer plusieurs systèmes avec if, elif et else.
1 2 3 4 5 6 7 8 9 10 11 12 | import platform systeme = platform.system() if systeme == "Windows": print("Système Microsoft Windows") elif systeme == "Linux": print("Système Linux") elif systeme == "Darwin": print("Système macOS") else: print("Autre système :", systeme) |
Sortie possible :
1 | Système Microsoft Windows |
Cette structure permet au même programme Python de reconnaître plusieurs plateformes et de prévoir un traitement pour les systèmes non explicitement pris en charge.
5. Distinguer Windows, Linux et macOS
Pour développer un programme multiplateforme, il est important de connaître les principales valeurs susceptibles d'être retournées par platform.system(). Windows est identifié par "Windows", Linux par "Linux" et macOS généralement par "Darwin".
Le programme suivant transforme le résultat technique en un nom plus facilement compréhensible par l'utilisateur.
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("Votre système :", nom) |
Sortie possible sous macOS :
1 | Votre système : macOS |
Nous conservons ainsi la valeur "Darwin" pour effectuer le test tout en présentant "macOS" à l'utilisateur.
Une autre solution consiste à utiliser un dictionnaire pour effectuer cette correspondance.
1 2 3 4 5 6 7 8 9 10 | import platform noms = { "Windows": "Microsoft Windows", "Linux": "GNU/Linux", "Darwin": "macOS" } systeme = platform.system() print(noms.get(systeme, systeme)) |
Sortie possible :
1 | Microsoft Windows |
La méthode get() retourne le nom correspondant lorsque la clé existe. Dans le cas contraire, elle retourne ici directement la valeur fournie par platform.system().
6. Associer platform.system() à platform.release()
La fonction platform.system() identifie principalement la famille du système. Pour obtenir une information complémentaire sur sa version ou sa publication, nous pouvons utiliser platform.release().
Le programme suivant affiche le système et sa version de publication.
1 2 3 4 5 6 7 | import platform systeme = platform.system() version = platform.release() print("Système :", systeme) print("Release :", version) |
Sortie possible :
1 2 | Système : Windows Release : 11 |
La valeur exacte retournée par platform.release() dépend du système et de l'environnement d'exécution.
Nous pouvons également afficher les deux informations sur une seule ligne.
1 2 3 | import platform print(platform.system(), platform.release()) |
Sortie possible :
1 | Linux 6.8.0-79-generic |
Cette combinaison fournit davantage d'informations que platform.system() utilisé seul.
7. Obtenir davantage d'informations avec platform.platform()
Lorsque nous souhaitons obtenir une description plus complète de la plateforme, le module fournit également la fonction platform.platform(). Elle rassemble plusieurs informations sur le système dans une chaîne de caractères.
Le programme suivant compare le résultat de platform.system() à celui de platform.platform().
1 2 3 4 | import platform print("Système :", platform.system()) print("Plateforme :", platform.platform()) |
Sortie possible :
1 2 | Système : Windows Plateforme : Windows-11-10.0.26100-SP0 |
La sortie de platform.platform() peut varier selon la machine et la version du système. Elle est généralement plus détaillée que celle de platform.system().
Nous pouvons compléter ces informations avec platform.machine(), qui fournit une indication concernant le type de machine ou l'architecture matérielle rapportée par le système.
1 2 3 4 | import platform print("Système :", platform.system()) print("Machine :", platform.machine()) |
Sortie possible :
1 2 | Système : Windows Machine : AMD64 |
Ces fonctions peuvent être combinées lorsque l'application doit connaître plus précisément son environnement d'exécution.
8. Créer une fonction de détection du système
Lorsque la détection du système doit être effectuée à plusieurs endroits d'un programme, il peut être intéressant de placer le traitement dans une fonction Python. Cette approche évite de répéter les mêmes tests.
Le programme suivant crée une fonction detecter_systeme() qui retourne un nom facilement compréhensible.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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(detecter_systeme()) |
Sortie possible :
1 | Windows |
La fonction centralise la logique de détection et peut être appelée chaque fois que le programme doit connaître le système.
Nous pouvons également retourner plusieurs informations dans un dictionnaire.
1 2 3 4 5 6 7 8 9 10 11 | import platform def informations_systeme(): return { "systeme": platform.system(), "release": platform.release(), "machine": platform.machine() } infos = informations_systeme() print(infos) |
Sortie possible :
1 | {'systeme': 'Windows', 'release': '11', 'machine': 'AMD64'} |
Le dictionnaire permet ensuite d'exploiter séparément chaque information dans le reste de l'application.
9. Utiliser platform.system() dans un programme multiplateforme
La détection du système est particulièrement utile lorsque certaines opérations ne sont pas identiques sous Windows, Linux et macOS. Nous pouvons ainsi sélectionner automatiquement une valeur ou une configuration adaptée à la plateforme.
Les chemins utilisent traditionnellement des conventions différentes selon les systèmes. Le programme suivant choisit simplement un exemple de dossier utilisateur selon le système détecté.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import platform systeme = platform.system() if systeme == "Windows": exemple = r"C:\Users\utilisateur\Documents" elif systeme == "Linux": exemple = "/home/utilisateur/Documents" elif systeme == "Darwin": exemple = "/Users/utilisateur/Documents" else: exemple = "Chemin non défini" print(exemple) |
Sortie possible sous Windows :
1 | C:\Users\utilisateur\Documents |
Dans une application réelle, il est généralement préférable d'utiliser des outils multiplateformes tels que pathlib plutôt que de construire manuellement les chemins. platform.system() reste cependant utile lorsqu'une véritable différence de comportement dépend du système.
Le programme suivant montre un autre exemple simple dans lequel une configuration est choisie automatiquement selon la plateforme.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import platform systeme = platform.system() if systeme == "Windows": configuration = "Configuration pour Windows" elif systeme == "Linux": configuration = "Configuration pour Linux" elif systeme == "Darwin": configuration = "Configuration pour macOS" else: configuration = "Configuration générique" print(configuration) |
Sortie possible :
1 | Configuration pour Windows |
Cette approche permet de conserver une seule base de code tout en adaptant certaines parties du programme à la plateforme utilisée.
10. À retenir !
La fonction platform.system() constitue une méthode simple pour identifier le système d'exploitation sur lequel un programme Python est exécuté. Elle appartient au module standard platform et peut être utilisée pour créer des applications capables d'adapter leur comportement à plusieurs plateformes.
- platform.system() retourne le nom du système sous forme de chaîne de caractères.
- Sous Windows, la valeur retournée est généralement "Windows".
- Sous Linux, la valeur retournée est généralement "Linux".
- Sous macOS, platform.system() retourne généralement "Darwin".
- Le résultat peut être stocké dans une variable et utilisé dans une structure if.
- platform.release() fournit une information complémentaire sur la version ou la publication du système.
- platform.platform() fournit une description plus détaillée de la plateforme.
- platform.machine() donne une information sur le type de machine rapporté par le système.
- La détection de la plateforme est utile pour développer des programmes multiplateformes.
- Lorsque Python fournit déjà une API multiplateforme, il est généralement préférable de l'utiliser plutôt que de multiplier les traitements spécifiques à chaque système.
Le programme suivant rassemble les principales informations étudiées dans ce tutoriel et affiche une présentation simple du système d'exploitation.
1 2 3 4 5 6 7 8 9 10 11 12 13 | import platform systeme = platform.system() if systeme == "Darwin": nom = "macOS" else: nom = systeme print("Système :", nom) print("Release :", platform.release()) print("Machine :", platform.machine()) print("Plateforme :", platform.platform()) |
Sortie possible :
1 2 3 4 | Système : Windows Release : 11 Machine : AMD64 Plateforme : Windows-11-10.0.26100-SP0 |
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/


