- À propos de os.path en Python
- Construire un chemin avec os.path.join()
- Obtenir le nom d'un fichier avec os.path.basename()
- Obtenir le dossier avec os.path.dirname()
- Séparer un chemin avec os.path.split()
- Séparer le nom et l'extension avec os.path.splitext()
- Tester l'existence d'un chemin avec os.path.exists()
- Distinguer fichiers et dossiers
- Obtenir et normaliser un chemin absolu
Le module os.path de Python fournit plusieurs fonctions permettant de construire, analyser, tester et transformer les chemins des fichiers et des dossiers. Il permet notamment de manipuler les chemins sans avoir à gérer manuellement les séparateurs utilisés par les différents systèmes d'exploitation.
1. À propos de os.path en Python
os.path est un sous-module du module standard os. Il regroupe plusieurs fonctions permettant de travailler facilement avec les chemins des fichiers et des dossiers.
Pour utiliser les fonctions de os.path, il suffit d'importer le module os. L'exemple suivant stocke un chemin dans une variable puis l'affiche.
1 2 3 4 | import os chemin = "documents/cours.txt" print(chemin) |
Sortie :
1 | documents/cours.txt |
Le module os.path est particulièrement utile pour écrire des programmes capables de fonctionner sur différents systèmes d'exploitation comme Windows, Linux et macOS.
2. Construire un chemin avec os.path.join()
La fonction os.path.join() permet d'assembler plusieurs parties afin de construire un chemin. Elle utilise automatiquement le séparateur approprié au système d'exploitation.
Dans l'exemple suivant, nous construisons un chemin à partir du dossier documents, du sous-dossier python et du fichier cours.txt.
1 2 3 4 | import os chemin = os.path.join("documents", "python", "cours.txt") print(chemin) |
Sortie sous Windows :
1 | documents\python\cours.txt |
Sortie sous Linux ou macOS :
1 | documents/python/cours.txt |
L'utilisation de os.path.join() est préférable à la concaténation manuelle des différentes parties d'un chemin avec / ou \.
3. Obtenir le nom d'un fichier avec os.path.basename()
La fonction os.path.basename() permet de récupérer la dernière partie d'un chemin. Lorsqu'un chemin désigne un fichier, cette fonction permet généralement d'obtenir son nom avec son extension.
Dans l'exemple suivant, nous récupérons le nom cours.pdf à partir du chemin complet du fichier.
1 2 3 4 5 | import os chemin = "/home/python/documents/cours.pdf" nom = os.path.basename(chemin) print(nom) |
Sortie :
1 | cours.pdf |
La fonction os.path.basename() est utile lorsqu'un programme dispose d'un chemin complet mais doit uniquement récupérer le nom du fichier.
4. Obtenir le dossier avec os.path.dirname()
La fonction os.path.dirname() permet de récupérer la partie d'un chemin correspondant au dossier contenant le fichier.
Dans l'exemple suivant, nous récupérons le dossier contenant le fichier cours.pdf.
1 2 3 4 5 | import os chemin = "/home/python/documents/cours.pdf" dossier = os.path.dirname(chemin) print(dossier) |
Sortie :
1 | /home/python/documents |
Cette fonction est particulièrement utile lorsqu'on souhaite retrouver le répertoire parent d'un fichier à partir de son chemin.
5. Séparer un chemin avec os.path.split()
La fonction os.path.split() permet de séparer un chemin en deux parties : le dossier et le dernier élément du chemin. Elle renvoie ces deux informations sous la forme d'un tuple.
Dans l'exemple suivant, nous séparons le dossier du nom du fichier.
1 2 3 4 5 6 | import os chemin = "/home/python/documents/cours.pdf" dossier, fichier = os.path.split(chemin) print("Dossier :", dossier) print("Fichier :", fichier) |
Sortie :
1 2 | Dossier : /home/python/documents Fichier : cours.pdf |
La fonction os.path.split() permet donc d'obtenir en une seule opération le dossier et le nom du fichier.
6. Séparer le nom et l'extension avec os.path.splitext()
La fonction os.path.splitext() permet de séparer un nom de fichier en deux parties : le nom et son extension.
Dans l'exemple suivant, nous séparons le nom cours_python de l'extension .pdf.
1 2 3 4 5 6 | import os fichier = "cours_python.pdf" nom, extension = os.path.splitext(fichier) print("Nom :", nom) print("Extension :", extension) |
Sortie :
1 2 | Nom : cours_python Extension : .pdf |
La fonction os.path.splitext() est particulièrement utile pour identifier l'extension d'un fichier ou pour construire un nouveau nom de fichier.
Dans l'exemple suivant, nous remplaçons l'extension .txt par l'extension .pdf.
1 2 3 4 5 6 | import os fichier = "cours_python.txt" nom, extension = os.path.splitext(fichier) nouveau_fichier = nom + ".pdf" print(nouveau_fichier) |
Sortie :
1 | cours_python.pdf |
7. Tester l'existence d'un chemin avec os.path.exists()
La fonction os.path.exists() permet de vérifier si un fichier ou un dossier existe réellement sur le système. Elle renvoie True si le chemin existe et False dans le cas contraire.
Dans l'exemple suivant, nous testons l'existence du dossier courant représenté par le symbole ..
1 2 3 4 | import os chemin = "." print(os.path.exists(chemin)) |
Sortie :
1 | True |
La fonction os.path.exists() est souvent utilisée avec une structure conditionnelle if afin de vérifier l'existence d'un chemin avant d'effectuer une opération.
1 2 3 4 5 6 7 | import os chemin = "." if os.path.exists(chemin): print("Le chemin existe.") else: print("Le chemin n'existe pas.") |
Sortie :
1 | Le chemin existe. |
8. Distinguer fichiers et dossiers
Utiliser os.path.isfile()
La fonction os.path.isfile() permet de déterminer si un chemin correspond à un fichier. Elle renvoie True lorsque le chemin désigne un fichier et False dans le cas contraire.
Dans l'exemple suivant, nous créons d'abord le fichier exemple.txt, puis nous vérifions qu'il s'agit bien d'un fichier.
1 2 3 4 5 | import os with open("exemple.txt", "w") as fichier: fichier.write("Python") print(os.path.isfile("exemple.txt")) |
Sortie :
1 | True |
Utiliser os.path.isdir()
La fonction os.path.isdir() permet de déterminer si un chemin correspond à un dossier. Dans l'exemple suivant, le symbole . représente le dossier courant.
1 2 3 4 | import os chemin = "." print(os.path.isdir(chemin)) |
Sortie :
1 | True |
Distinguer automatiquement un fichier d'un dossier
Les fonctions os.path.exists(), os.path.isfile() et os.path.isdir() peuvent être combinées pour déterminer automatiquement la nature d'un chemin.
1 2 3 4 5 6 7 8 9 | import os chemin = "." if not os.path.exists(chemin): print("Le chemin n'existe pas.") elif os.path.isfile(chemin): print("Le chemin correspond à un fichier.") elif os.path.isdir(chemin): print("Le chemin correspond à un dossier.") |
Sortie :
1 | Le chemin correspond à un dossier. |
9. Obtenir et normaliser un chemin absolu
Obtenir un chemin absolu avec os.path.abspath()
Un chemin relatif est défini par rapport au répertoire courant, tandis qu'un chemin absolu indique l'emplacement complet d'un fichier ou d'un dossier. La fonction os.path.abspath() permet de transformer un chemin relatif en chemin absolu.
Dans l'exemple suivant, nous obtenons le chemin absolu correspondant au fichier cours.txt. Le résultat dépend du dossier depuis lequel le programme est exécuté.
1 2 3 4 | import os chemin = os.path.abspath("cours.txt") print(chemin) |
Exemple de sortie sous Windows :
1 | C:\Users\Younes\Documents\cours.txt |
Exemple de sortie sous Linux :
1 | /home/younes/Documents/cours.txt |
Normaliser un chemin avec os.path.normpath()
La fonction os.path.normpath() permet de normaliser un chemin. Elle simplifie notamment certains éléments comme .., qui représente le dossier parent.
Dans l'exemple suivant, la partie python/.. est simplifiée lors de la normalisation du chemin.
1 2 3 4 | import os chemin = os.path.normpath("documents/python/../images/photo.jpg") print(chemin) |
Sortie sous Windows :
1 | documents\images\photo.jpg |
Sortie sous Linux ou macOS :
1 | documents/images/photo.jpg |
Exemple complet de manipulation d'un chemin
L'exemple suivant regroupe plusieurs fonctions importantes de os.path. Nous construisons un chemin, puis nous récupérons son dossier, le nom du fichier, son nom sans extension et son extension.
1 2 3 4 5 6 7 8 9 10 11 | import os chemin = os.path.join("documents", "python", "cours.pdf") dossier = os.path.dirname(chemin) fichier = os.path.basename(chemin) nom, extension = os.path.splitext(fichier) print("Chemin :", chemin) print("Dossier :", dossier) print("Fichier :", fichier) print("Nom :", nom) print("Extension :", extension) |
Sortie sous Windows :
1 2 3 4 5 | Chemin : documents\python\cours.pdf Dossier : documents\python Fichier : cours.pdf Nom : cours Extension : .pdf |
Les fonctions du module os.path permettent ainsi de manipuler efficacement les chemins sans effectuer manuellement des opérations complexes sur les chaînes de caractères.
Principales fonctions à retenir : os.path.join(), os.path.basename(), os.path.dirname(), os.path.split(), os.path.splitext(), os.path.exists(), os.path.isfile(), os.path.isdir(), os.path.abspath() et os.path.normpath().
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/


