Connaître le système d'exploitation avec platform.system() en Python

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é.

Sortie possible :

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.

Sortie possible :

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.

Sortie possible :

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.

Sortie possible :

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".

Sortie possible sous macOS :

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.

Sortie possible :

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.

Sortie possible :

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.

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

Sortie possible :

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.

Sortie possible :

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.

Sortie possible :

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().

Sortie possible :

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.

Sortie possible :

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.

Sortie possible :

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.

Sortie possible :

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é.

Sortie possible sous Windows :

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.

Sortie possible :

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.

Sortie possible :

 



 


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 *