Connaître le système d'exploitation avec sys.platform en Python

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.

Sortie possible sous Windows :

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.

Sortie possible sous Windows :

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èmeValeur courante de sys.platform
Windowswin32
Linuxlinux
macOSdarwin

Le programme suivant traduit ces valeurs courantes en noms plus faciles à lire.

Sortie possible sous 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.

Sortie possible 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.

Sortie possible 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.

Sortie possible 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.

Sortie possible sous Windows :

Nous pouvons également utiliser cette technique pour choisir des paramètres différents selon le système.

Sortie possible sous Windows :

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.

Sortie possible sous Windows :

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.

Sortie possible sous 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().

Sortie possible sous Windows :

Sous Linux, nous pouvons par exemple obtenir :

Sortie possible sous 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.

Sortie possible sous 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/


Leave a Reply

Your email address will not be published. Required fields are marked *