Créer un script d'informations système avec le module platform en Python

1. À propos de la création d'un script d'informations système avec le module platform

Python permet de récupérer facilement différentes informations concernant l'ordinateur sur lequel un programme est exécuté. Le module standard platform fournit pour cela plusieurs fonctions permettant d'interroger le système d'exploitation, la machine, l'architecture, le processeur et la version de Python.

Dans ce tutoriel, nous allons réunir ces différentes fonctionnalités afin de réaliser une petite application d'informations système. Elle affichera notamment le système d'exploitation, sa version, le nom de la machine, son architecture, son processeur et les principales informations concernant Python.

Avant de construire l'application complète, voici un premier exemple très simple permettant d'obtenir le nom du système d'exploitation.

Sortie possible :

La sortie dépend naturellement de l'ordinateur utilisé. Sous Linux, la valeur retournée sera généralement "Linux", tandis que sous macOS, platform.system() retourne généralement "Darwin".

2. Préparer le script et importer le module platform

Le module platform appartient à la bibliothèque standard de Python. Il n'est donc pas nécessaire de l'installer avec pip. L'instruction import platform suffit pour accéder à ses fonctions.

Commençons notre application par un petit en-tête permettant de vérifier que le module est correctement importé.

Sortie :

Nous pouvons également utiliser platform.platform() pour obtenir immédiatement une chaîne donnant un résumé général de la plateforme.

Sortie possible :

Le contenu exact de cette chaîne dépend du système et de sa configuration. Notre application va cependant aller plus loin en récupérant séparément chaque information importante.

3. Récupérer le système d'exploitation et les informations de la machine

La fonction platform.uname() permet de récupérer en une seule opération plusieurs informations sur le système. Son résultat possède notamment les attributs system, node, release, version, machine et processor.

Nous pouvons utiliser ces attributs pour afficher le système d'exploitation, le nom de la machine, la release et la version du système.

Sortie possible :

Le nom retourné par node correspond au nom de la machine sur le réseau. Il varie donc d'un ordinateur à un autre.

Nous pouvons également détecter explicitement Windows, Linux ou macOS afin d'afficher un nom plus convivial.

Sortie possible sous macOS :

Cette conversion est utile parce que platform.system() retourne "Darwin" sous macOS.

4. Obtenir l'architecture et les informations sur le processeur

Notre application doit également fournir des informations sur la partie matérielle. La fonction platform.machine() retourne le type de machine ou l'architecture matérielle rapportée par le système.

Sortie possible :

La fonction platform.architecture() retourne généralement un tuple contenant la taille des mots de l'exécutable Python, par exemple "64bit", ainsi qu'une information sur son format de liaison.

Sortie possible sous Windows :

Il faut distinguer platform.machine() et platform.architecture(). La première renseigne sur le type de machine rapporté par le système, tandis que la seconde renseigne principalement sur l'architecture de l'exécutable Python.

La fonction platform.processor() peut fournir une information sur le processeur.

Sortie possible :

La valeur retournée par platform.processor() dépend fortement du système. Elle peut être détaillée sur certaines machines et vide sur d'autres. Il ne faut donc pas considérer cette fonction comme une méthode universelle permettant d'obtenir systématiquement le nom commercial exact du processeur.

5. Récupérer la version et l'implémentation de Python

Une application de diagnostic peut également afficher des informations concernant l'environnement Python. La fonction platform.python_version() retourne la version de Python sous forme de chaîne.

Sortie possible :

Pour connaître l'implémentation de Python, nous pouvons utiliser platform.python_implementation(). La valeur la plus courante est CPython.

Sortie possible :

La fonction platform.python_compiler() permet également d'obtenir une chaîne décrivant le compilateur utilisé pour construire l'interpréteur Python.

Sortie possible :

Ces informations sont particulièrement utiles lorsqu'un programme rencontre un problème dépendant de la version de Python ou de son environnement d'exécution.

6. Regrouper les informations système dans un dictionnaire

Maintenant que nous savons récupérer les différentes informations, nous pouvons les regrouper dans un dictionnaire Python. Cette structure facilite leur affichage, leur traitement et leur éventuel enregistrement dans un fichier.

Le programme suivant construit un dictionnaire contenant les principales informations de notre application.

Sortie possible :

Le dictionnaire permet de centraliser toutes les informations dans une seule variable. Nous pouvons facilement lui ajouter d'autres données.

Par exemple, ajoutons l'implémentation et le compilateur de Python.

Sortie possible :

7. Créer une fonction réutilisable de collecte des informations

Pour rendre notre application mieux organisée, nous pouvons placer la collecte des données dans une fonction. Cette fonction retourne un dictionnaire contenant toutes les informations nécessaires.

Sortie possible :

La fonction obtenir_informations_systeme() peut maintenant être appelée depuis différentes parties du programme sans répéter les instructions de collecte.

Nous pouvons également créer une seconde fonction uniquement chargée de l'affichage.

Sortie :

Cette séparation entre collecte des données et affichage rend le programme plus facile à modifier et à réutiliser.

8. Construire l'application complète d'informations système

Nous pouvons maintenant réunir les éléments précédents afin de créer notre application complète d'informations système. Le programme collecte les données avec une fonction puis les affiche sous une forme lisible.

Sortie possible :

L'expression infos.processor or "Non disponible" permet d'afficher un message explicite lorsque le système ne fournit aucune information sur le processeur.

Nous pouvons également placer le lancement de l'application dans le bloc if __name__ == "__main__". Cette organisation est recommandée lorsqu'un fichier Python peut être exécuté directement mais également importé comme module dans un autre programme.

Sortie possible :

9. Enregistrer le rapport système dans un fichier

Une petite application de diagnostic devient encore plus utile lorsqu'elle permet d'enregistrer les informations système dans un fichier. Le rapport peut ensuite être conservé ou transmis pour analyser un problème technique.

Le programme suivant collecte les principales informations puis les écrit dans un fichier nommé systeme.txt.

Sortie :

Le fichier créé contient alors les informations système collectées lors de l'exécution.

Sortie :

Nous pouvons enfin réunir l'affichage et l'enregistrement dans une application complète disposant de fonctions distinctes.

Sortie possible :

Notre petite application possède maintenant trois responsabilités clairement séparées : collecter les informations, les afficher et les enregistrer.

10. À retenir !

Le module platform permet de réaliser facilement une application d'informations système en Python sans installer de bibliothèque externe.

  • platform.system() permet d'obtenir le nom du système d'exploitation.
  • platform.uname() regroupe plusieurs informations sur le système et la machine.
  • platform.machine() retourne le type de machine ou l'architecture matérielle rapportée par le système.
  • platform.architecture() fournit principalement des informations sur l'architecture de l'exécutable Python.
  • platform.processor() fournit une information sur le processeur lorsqu'elle est disponible.
  • platform.python_version() retourne la version de Python.
  • platform.python_implementation() indique l'implémentation Python utilisée, par exemple CPython.
  • platform.python_compiler() donne des informations sur le compilateur utilisé pour construire Python.
  • Sous macOS, platform.system() retourne généralement "Darwin".
  • Un dictionnaire permet de regrouper proprement les informations collectées.
  • Des fonctions permettent de séparer la collecte, l'affichage et l'enregistrement des informations.
  • Le bloc if __name__ == "__main__" permet de distinguer l'exécution directe du script de son importation comme module.
  • Les résultats des fonctions du module platform dépendent du système et certaines informations peuvent être absentes.

Le programme suivant constitue une version compacte de l'application regroupant les cinq informations essentielles demandées : système d'exploitation, machine, architecture, processeur et version de Python.

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 *