- À propos des processus avec le module os
- Obtenir l'identifiant du processus avec os.getpid()
- Obtenir l'identifiant du processus parent avec os.getppid()
- Identifier le système avec os.name
- Obtenir les informations de connexion avec os.getlogin()
- Obtenir des informations avec os.uname()
- Obtenir les identifiants utilisateur et groupe sous Unix
- Obtenir les variables d'environnement du processus
- Afficher plusieurs informations sur le processus courant
- Résumé
1. À propos des processus avec le module os
Lorsqu'un programme Python est exécuté, le système d'exploitation crée un processus chargé d'exécuter ce programme. Chaque processus possède différentes informations comme un identifiant, un processus parent et un environnement d'exécution.
Le module os de Python fournit plusieurs fonctions permettant d'obtenir des informations concernant le processus courant et son environnement.
Parmi les fonctions et attributs utiles, nous pouvons notamment citer os.getpid(), os.getppid(), os.name, os.getlogin(), os.uname() et os.environ. Certaines fonctions ne sont toutefois disponibles que sur certains systèmes d'exploitation.
Le programme suivant importe simplement le module os afin de pouvoir utiliser ses fonctions.
1 2 3 | import os print("Module os chargé.") |
Sortie :
1 | Module os chargé. |
2. Obtenir l'identifiant du processus avec os.getpid()
Chaque processus exécuté par le système possède un numéro appelé PID, pour Process Identifier. Ce numéro permet au système d'identifier le processus de manière unique pendant son exécution.
La fonction os.getpid() permet de récupérer le PID du processus Python courant.
1 2 3 4 | import os pid = os.getpid() print("PID :", pid) |
Sortie possible :
1 | PID : 8420 |
Le numéro obtenu varie d'une exécution à une autre, car le PID est attribué par le système d'exploitation lors du lancement du processus.
Nous pouvons également afficher directement l'identifiant sans utiliser de variable intermédiaire.
1 2 3 | import os print("Processus courant :", os.getpid()) |
Sortie possible :
1 | Processus courant : 10564 |
3. Obtenir l'identifiant du processus parent avec os.getppid()
Un processus peut avoir été lancé par un autre processus appelé processus parent. La fonction os.getppid() permet d'obtenir le PID du processus parent lorsque cette fonction est disponible sur le système utilisé.
Le programme suivant affiche le PID du programme Python ainsi que celui de son processus parent.
1 2 3 4 | import os print("PID du processus :", os.getpid()) print("PID du parent :", os.getppid()) |
Sortie possible :
1 2 | PID du processus : 8420 PID du parent : 12560 |
Lorsque Python est lancé depuis un terminal, un environnement de développement ou un autre programme, le processus parent correspond généralement au processus qui a lancé l'interpréteur Python.
4. Identifier le système avec os.name
L'attribut os.name indique la famille du système d'exploitation sur laquelle le programme Python est exécuté. Cette information est utile lorsqu'un programme doit adapter son comportement au système utilisé.
Le programme suivant affiche la valeur de os.name.
1 2 3 | import os print("Type du système :", os.name) |
Sortie possible sous Windows :
1 | Type du système : nt |
Sous de nombreux systèmes de type Unix, notamment Linux et macOS, la valeur obtenue est généralement posix.
Nous pouvons utiliser cette information dans une condition afin de distinguer Windows des systèmes de type Unix.
1 2 3 4 5 6 7 8 | import os if os.name == "nt": print("Système Windows") elif os.name == "posix": print("Système de type Unix") else: print("Autre système") |
Sortie possible sous Windows :
1 | Système Windows |
5. Obtenir les informations de connexion avec os.getlogin()
La fonction os.getlogin() permet d'obtenir le nom de l'utilisateur connecté au terminal contrôlant le processus lorsque cette information est disponible.
Le programme suivant tente d'afficher le nom obtenu avec os.getlogin().
1 2 3 4 | import os utilisateur = os.getlogin() print("Utilisateur :", utilisateur) |
Sortie possible :
1 | Utilisateur : Younes |
Selon l'environnement dans lequel Python est exécuté, os.getlogin() peut ne pas fonctionner, notamment lorsque le processus ne possède pas de terminal de contrôle. Pour récupérer le nom d'utilisateur dans une application destinée à plusieurs environnements, d'autres solutions peuvent être plus appropriées.
6. Obtenir des informations avec os.uname()
Sur les systèmes qui la prennent en charge, la fonction os.uname() fournit plusieurs informations concernant le système sur lequel le processus Python est exécuté.
Le résultat contient notamment le nom du système, le nom de la machine, la version du système et des informations concernant l'architecture matérielle.
1 2 3 4 | import os infos = os.uname() print(infos) |
Sortie possible sous Linux :
1 | posix.uname_result(sysname='Linux', nodename='ordinateur', release='6.8.0', version='#1', machine='x86_64') |
Les différentes informations peuvent également être récupérées séparément à partir du résultat retourné par os.uname().
1 2 3 4 5 6 7 8 | import os infos = os.uname() print("Système :", infos.sysname) print("Machine :", infos.nodename) print("Version :", infos.release) print("Architecture :", infos.machine) |
Sortie possible :
1 2 3 4 | Système : Linux Machine : ordinateur Version : 6.8.0 Architecture : x86_64 |
La fonction os.uname() n'est pas disponible nativement sous Windows. Pour écrire un programme portable permettant d'obtenir des informations détaillées sur le système, le module platform peut être utilisé.
7. Obtenir les identifiants utilisateur et groupe sous Unix
Sur les systèmes Unix, le module os fournit également des fonctions permettant d'obtenir les identifiants associés à l'utilisateur qui exécute le processus. La fonction os.getuid() retourne l'identifiant utilisateur, tandis que os.getgid() retourne l'identifiant du groupe.
Le programme suivant affiche ces deux informations sur un système Unix compatible.
1 2 3 4 | import os print("UID :", os.getuid()) print("GID :", os.getgid()) |
Sortie possible :
1 2 | UID : 1000 GID : 1000 |
Les valeurs UID et GID dépendent de la configuration du système. Ces fonctions ne sont pas disponibles sur toutes les plateformes, notamment sur les versions standards de Python sous Windows.
8. Obtenir les variables d'environnement du processus
Chaque processus possède un ensemble de variables d'environnement. Python permet d'y accéder avec os.environ. Ces variables peuvent contenir des informations sur les chemins, l'utilisateur, les dossiers temporaires ou la configuration d'une application.
Le programme suivant affiche la variable PATH disponible dans l'environnement du processus Python.
1 2 3 4 | import os path = os.environ.get("PATH") print(path) |
Sortie possible :
1 | C:\Windows\system32;C:\Windows;C:\Python313;... |
Nous pouvons également utiliser os.environ.get() pour lire une variable sans provoquer d'erreur lorsque celle-ci n'existe pas.
1 2 3 4 | import os utilisateur = os.environ.get("USERNAME", "Utilisateur inconnu") print("Utilisateur :", utilisateur) |
Sortie possible sous Windows :
1 | Utilisateur : Younes |
Les noms et les valeurs des variables disponibles varient selon le système d'exploitation et l'environnement dans lequel le processus a été lancé.
9. Afficher plusieurs informations sur le processus courant
Nous pouvons combiner plusieurs fonctions du module os afin de construire un petit programme fournissant différentes informations concernant le processus Python courant.
Le programme suivant affiche le PID, le PID du processus parent, le type du système et le répertoire de travail courant.
1 2 3 4 5 6 | import os print("PID :", os.getpid()) print("PID parent :", os.getppid()) print("Type du système :", os.name) print("Répertoire courant :", os.getcwd()) |
Sortie possible sous Windows :
1 2 3 4 | PID : 8420 PID parent : 12560 Type du système : nt Répertoire courant : C:\Users\Utilisateur\Documents |
Nous pouvons rendre ce programme plus portable en vérifiant la disponibilité d'une fonction avec hasattr() avant de l'appeler.
1 2 3 4 5 6 7 8 9 10 11 | import os print("PID :", os.getpid()) if hasattr(os, "getppid"): print("PID parent :", os.getppid()) if hasattr(os, "uname"): print("Système :", os.uname().sysname) print("Répertoire courant :", os.getcwd()) |
Sortie possible sous Linux :
1 2 3 4 | PID : 5274 PID parent : 4102 Système : Linux Répertoire courant : /home/utilisateur/documents |
10. Résumé
Le module os permet d'obtenir plusieurs informations concernant le processus Python courant, son processus parent et son environnement d'exécution.
- os.getpid() retourne le PID du processus Python courant.
- os.getppid() retourne le PID du processus parent lorsqu'elle est disponible.
- os.name indique la famille du système d'exploitation.
- os.getlogin() peut fournir le nom de l'utilisateur associé au terminal de contrôle.
- os.uname() fournit des informations détaillées sur le système lorsqu'elle est disponible.
- os.getuid() et os.getgid() permettent d'obtenir les identifiants utilisateur et groupe sur les systèmes compatibles.
- os.environ permet d'accéder aux variables d'environnement du processus.
- os.getcwd() permet de connaître le répertoire de travail courant du processus.
- Certaines fonctions du module os dépendent du système d'exploitation.
Le programme suivant résume les principales informations portables que nous pouvons facilement obtenir sur le processus Python courant.
1 2 3 4 5 6 | import os print("PID :", os.getpid()) print("PID parent :", os.getppid()) print("Système :", os.name) print("Répertoire courant :", os.getcwd()) |
Sortie possible :
1 2 3 4 | PID : 8420 PID parent : 12560 Système : nt Répertoire courant : C:\Users\Utilisateur\Documents |
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/


