- À propos de sys.platform
- Afficher le système avec sys.platform
- Connaître les principales valeurs de sys.platform
- Tester si Python fonctionne sous Windows
- Tester si Python fonctionne sous Linux
- Tester si Python fonctionne sous macOS
- Exécuter un code différent selon le système
- Utiliser sys.platform avec pathlib
- Différence entre sys.platform et platform.system()
- À retenir !
1. À propos de sys.platform
Le module sys fournit la variable sys.platform qui permet d'identifier la plateforme sur laquelle l'interpréteur Python est exécuté.
Cette information est particulièrement utile lorsqu'un programme doit adapter son comportement au système d'exploitation. Un programme peut par exemple utiliser des chemins, des commandes ou certaines fonctionnalités différentes sous Windows, Linux ou macOS.
Le programme suivant affiche simplement la valeur de sys.platform.
1 2 3 | import sys print(sys.platform) |
Sortie possible sous Windows :
1 | win32 |
La valeur retournée dépend de la plateforme sur laquelle Python est exécuté.
2. Afficher le système avec sys.platform
La variable sys.platform contient une chaîne de caractères. Nous pouvons donc la stocker dans une variable et l'utiliser comme n'importe quelle autre chaîne Python.
Le programme suivant récupère la plateforme puis affiche sa valeur et son type.
1 2 3 4 5 6 | import sys systeme = sys.platform print("Plateforme :", systeme) print("Type :", type(systeme)) |
Sortie possible sous Windows :
1 2 | Plateforme : win32 Type : <class 'str'> |
Il est important de remarquer que sys.platform ne retourne pas nécessairement le nom commercial du système d'exploitation. Par exemple, Python retourne généralement win32 sous Windows, y compris sur les versions modernes de Windows 64 bits.
3. Connaître les principales valeurs de sys.platform
La valeur retournée par sys.platform dépend de la plateforme. Les valeurs les plus couramment rencontrées sont notamment win32, linux et darwin.
| Système | Valeur courante de sys.platform |
|---|---|
| Windows | win32 |
| Linux | linux |
| macOS | darwin |
Le programme suivant traduit ces valeurs courantes en noms plus faciles à lire.
1 2 3 4 5 6 7 8 9 10 | import sys if sys.platform == "win32": print("Windows") elif sys.platform == "linux": print("Linux") elif sys.platform == "darwin": print("macOS") else: print("Autre plateforme :", sys.platform) |
Sortie possible sous Windows :
1 | Windows |
La chaîne darwin utilisée pour macOS provient du nom du système sous-jacent Darwin.
4. Tester si Python fonctionne sous Windows
Pour savoir si un programme Python fonctionne sous Windows, nous pouvons comparer sys.platform à la chaîne "win32".
Le programme suivant effectue ce test.
1 2 3 4 5 6 | import sys if sys.platform == "win32": print("Le programme fonctionne sous Windows.") else: print("Le programme ne fonctionne pas sous Windows.") |
Sortie possible sous Windows :
1 | Le programme fonctionne sous Windows. |
La valeur win32 ne signifie pas que Python fonctionne nécessairement en architecture 32 bits. Elle est utilisée comme identifiant de plateforme Windows, y compris couramment avec Python 64 bits.
5. Tester si Python fonctionne sous Linux
Pour identifier un système Linux, nous pouvons tester si sys.platform vaut "linux".
Le programme suivant vérifie si Python est exécuté sous Linux.
1 2 3 4 5 6 | import sys if sys.platform == "linux": print("Le programme fonctionne sous Linux.") else: print("Le système utilisé n'est pas Linux.") |
Sortie possible sous Linux :
1 | Le programme fonctionne sous Linux. |
sys.platform permet d'identifier la plateforme Linux, mais ne donne pas directement le nom de la distribution utilisée, comme Ubuntu, Debian, Fedora ou Linux Mint.
6. Tester si Python fonctionne sous macOS
Sur macOS, sys.platform retourne généralement la chaîne "darwin". Il ne faut donc pas tester la valeur "macos" ou "mac".
Le programme suivant vérifie si Python fonctionne sous macOS.
1 2 3 4 5 6 | import sys if sys.platform == "darwin": print("Le programme fonctionne sous macOS.") else: print("Le système utilisé n'est pas macOS.") |
Sortie possible sous macOS :
1 | Le programme fonctionne sous macOS. |
Cette valeur peut être utilisée pour adapter certaines parties d'un programme aux particularités de macOS.
7. Exécuter un code différent selon le système
L'une des principales utilisations de sys.platform consiste à exécuter des instructions différentes selon le système d'exploitation.
Le programme suivant choisit une commande permettant d'effacer le terminal selon la plateforme.
1 2 3 4 5 6 7 8 9 10 | import sys if sys.platform == "win32": commande = "cls" elif sys.platform == "linux" or sys.platform == "darwin": commande = "clear" else: commande = "commande inconnue" print("Commande :", commande) |
Sortie possible sous Windows :
1 | Commande : cls |
Nous pouvons également utiliser cette technique pour choisir des paramètres différents selon le système.
1 2 3 4 5 6 7 8 | import sys if sys.platform == "win32": separateur = "\\" else: separateur = "/" print("Séparateur choisi :", separateur) |
Sortie possible sous Windows :
1 | Séparateur choisi : \ |
Pour manipuler réellement des chemins, il est cependant généralement préférable d'utiliser pathlib ou os.path, qui gèrent automatiquement de nombreuses différences entre les systèmes.
8. Utiliser sys.platform avec pathlib
Le module pathlib permet de construire des chemins de manière portable. Nous pouvons l'associer à sys.platform lorsque le choix du dossier lui-même dépend du système utilisé.
Le programme suivant sélectionne un dossier différent selon la plateforme puis construit un chemin avec Path.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import sys from pathlib import Path if sys.platform == "win32": dossier = Path.home() / "Documents" elif sys.platform == "linux": dossier = Path.home() / "Documents" elif sys.platform == "darwin": dossier = Path.home() / "Documents" else: dossier = Path.home() fichier = dossier / "cours.txt" print(fichier) |
Sortie possible sous Windows :
1 | C:\Users\dell\Documents\cours.txt |
L'utilisation de Path évite notamment de gérer manuellement les séparateurs \ et / dans la majorité des opérations sur les chemins.
Nous pouvons également utiliser sys.platform uniquement pour les traitements qui sont réellement spécifiques au système.
1 2 3 4 5 6 7 8 9 10 11 12 13 | import sys from pathlib import Path fichier = Path.home() / "cours.txt" print("Fichier :", fichier) if sys.platform == "win32": print("Plateforme Windows") elif sys.platform == "linux": print("Plateforme Linux") elif sys.platform == "darwin": print("Plateforme macOS") |
Sortie possible sous Linux :
1 2 | Fichier : /home/younes/cours.txt Plateforme Linux |
9. Différence entre sys.platform et platform.system()
Python possède également le module platform, qui fournit plusieurs fonctions permettant d'obtenir des informations sur le système. La fonction platform.system() retourne généralement un nom plus lisible du système d'exploitation.
Le programme suivant compare sys.platform et platform.system().
1 2 3 4 5 | import sys import platform print("sys.platform :", sys.platform) print("platform.system() :", platform.system()) |
Sortie possible sous Windows :
1 2 | sys.platform : win32 platform.system() : Windows |
Sous Linux, nous pouvons par exemple obtenir :
1 2 3 4 5 | import sys import platform print("sys.platform :", sys.platform) print("platform.system() :", platform.system()) |
Sortie possible sous Linux :
1 2 | sys.platform : linux platform.system() : Linux |
La différence principale est que sys.platform fournit un identifiant de plateforme pratique pour effectuer des tests dans le code, tandis que le module platform fournit des fonctions destinées à obtenir davantage d'informations sur l'environnement d'exécution.
10. À retenir !
La variable sys.platform du module sys fournit un identifiant permettant de connaître la plateforme sur laquelle Python est exécuté. Elle est particulièrement utile pour adapter certaines instructions aux différents systèmes d'exploitation.
- sys.platform retourne une chaîne de caractères.
- Sous Windows, la valeur courante est win32.
- Sous Linux, la valeur courante est linux.
- Sous macOS, la valeur courante est darwin.
- win32 ne signifie pas nécessairement que Python fonctionne en 32 bits.
- sys.platform peut être utilisé dans des conditions if, elif et else.
- Il permet d'exécuter du code différent selon la plateforme.
- Pour les chemins de fichiers, pathlib évite souvent d'avoir à tester manuellement le système.
- platform.system() fournit généralement un nom plus lisible du système.
- Le module platform peut être utilisé lorsqu'on souhaite obtenir des informations système plus détaillées.
Le programme suivant regroupe les principaux tests permettant d'identifier les plateformes les plus courantes avec sys.platform.
1 2 3 4 5 6 7 8 9 10 11 12 | import sys print("Plateforme :", sys.platform) if sys.platform == "win32": print("Système : Windows") elif sys.platform == "linux": print("Système : Linux") elif sys.platform == "darwin": print("Système : macOS") else: print("Autre système") |
Sortie possible sous Windows :
1 2 | Plateforme : win32 Système : 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/


