- À propos des différentes parties d'un chemin avec pathlib
- Créer un chemin avec pathlib.Path
- Obtenir le nom avec Path.name
- Obtenir le dossier parent avec Path.parent
- Obtenir toutes les parties avec Path.parts
- Obtenir le nom sans extension avec Path.stem
- Obtenir l'extension avec Path.suffix
- Obtenir plusieurs extensions avec Path.suffixes
- Obtenir la racine, le lecteur et l'ancrage d'un chemin
- Accéder aux différents dossiers parents avec Path.parents
- Extraire plusieurs informations d'un chemin
- A retenir !
1. À propos des différentes parties d'un chemin avec pathlib
Le module pathlib de Python permet de manipuler les chemins de fichiers et de dossiers à l'aide d'objets. La classe Path fournit notamment plusieurs propriétés permettant d'extraire facilement les différentes parties d'un chemin.
À partir d'un chemin comme documents/python/cours.pdf, nous pouvons par exemple récupérer le nom du fichier, son extension, son dossier parent ou encore toutes les composantes du chemin.
Pour utiliser la classe Path, nous devons commencer par l'importer depuis le module pathlib. Le programme suivant crée ensuite un premier objet représentant un chemin.
1 2 3 4 | from pathlib import Path chemin = Path("documents/python/cours.pdf") print(chemin) |
Sortie :
1 | documents/python/cours.pdf |
Selon le système d'exploitation, le séparateur affiché peut être différent. Sous Windows, le même chemin peut par exemple apparaître avec des barres obliques inverses.
2. Créer un chemin avec pathlib.Path
La classe Path permet de construire un chemin en fournissant une chaîne de caractères ou plusieurs parties séparées. L'objet obtenu peut ensuite être analysé grâce aux nombreuses propriétés de Path.
Le programme suivant construit un chemin à partir de plusieurs éléments distincts.
1 2 3 4 | from pathlib import Path chemin = Path("documents", "python", "cours.pdf") print(chemin) |
Sortie :
1 | documents/python/cours.pdf |
Nous pouvons également construire le chemin progressivement avec l'opérateur /, ce qui rend généralement le code très lisible.
1 2 3 4 | from pathlib import Path chemin = Path("documents") / "python" / "cours.pdf" print(chemin) |
Sortie :
1 | documents/python/cours.pdf |
3. Obtenir le nom avec Path.name
La propriété Path.name permet de récupérer le dernier élément d'un chemin. Lorsque le chemin représente un fichier, cette propriété retourne généralement le nom du fichier avec son extension.
Le programme suivant récupère le nom cours.pdf à partir du chemin complet.
1 2 3 4 | from pathlib import Path chemin = Path("documents/python/cours.pdf") print(chemin.name) |
Sortie :
1 | cours.pdf |
La propriété name fonctionne également avec un chemin représentant un dossier. Elle retourne alors le dernier nom du chemin.
1 2 3 4 | from pathlib import Path chemin = Path("documents/python") print(chemin.name) |
Sortie :
1 | python |
4. Obtenir le dossier parent avec Path.parent
La propriété Path.parent permet d'obtenir le chemin parent d'un objet Path. Pour un fichier, il s'agit généralement du dossier qui le contient.
Dans l'exemple suivant, le fichier cours.pdf se trouve dans le dossier documents/python. La propriété parent permet de récupérer directement ce chemin.
1 2 3 4 | from pathlib import Path chemin = Path("documents/python/cours.pdf") print(chemin.parent) |
Sortie :
1 | documents/python |
Nous pouvons appliquer plusieurs fois parent afin de remonter dans l'arborescence.
1 2 3 4 5 6 | from pathlib import Path chemin = Path("documents/python/cours.pdf") print(chemin.parent) print(chemin.parent.parent) |
Sortie :
1 2 | documents/python documents |
5. Obtenir toutes les parties avec Path.parts
La propriété Path.parts permet de décomposer un chemin en ses différentes composantes. Le résultat est retourné sous forme d'un tuple.
Le programme suivant décompose le chemin documents/python/cours.pdf.
1 2 3 4 | from pathlib import Path chemin = Path("documents/python/cours.pdf") print(chemin.parts) |
Sortie :
1 | ('documents', 'python', 'cours.pdf') |
Comme parts retourne un tuple, nous pouvons accéder à une partie particulière en utilisant son indice.
1 2 3 4 5 6 7 | from pathlib import Path chemin = Path("documents/python/cours.pdf") print(chemin.parts[0]) print(chemin.parts[1]) print(chemin.parts[-1]) |
Sortie :
1 2 3 | documents python cours.pdf |
6. Obtenir le nom sans extension avec Path.stem
La propriété Path.stem permet d'obtenir le dernier composant du chemin sans son dernier suffixe. Elle est particulièrement pratique pour récupérer le nom d'un fichier sans son extension finale.
Le programme suivant récupère le nom cours à partir du fichier cours.pdf.
1 2 3 4 | from pathlib import Path chemin = Path("documents/python/cours.pdf") print(chemin.stem) |
Sortie :
1 | cours |
Dans le cas d'un nom comportant plusieurs suffixes, stem retire uniquement le dernier. Par exemple, pour sauvegarde.tar.gz, le résultat est sauvegarde.tar.
1 2 3 4 | from pathlib import Path chemin = Path("sauvegarde.tar.gz") print(chemin.stem) |
Sortie :
1 | sauvegarde.tar |
7. Obtenir l'extension avec Path.suffix
La propriété Path.suffix permet d'obtenir le dernier suffixe d'un chemin. Pour un nom de fichier simple, ce suffixe correspond généralement à son extension avec le point.
Le programme suivant récupère l'extension du fichier cours.pdf.
1 2 3 4 | from pathlib import Path chemin = Path("documents/python/cours.pdf") print(chemin.suffix) |
Sortie :
1 | .pdf |
Si le dernier élément du chemin ne possède pas de suffixe, la propriété suffix retourne une chaîne vide.
1 2 3 4 | from pathlib import Path chemin = Path("documents/python/cours") print(chemin.suffix) |
Sortie :
1 | '' |
8. Obtenir plusieurs extensions avec Path.suffixes
Certains noms de fichiers possèdent plusieurs suffixes, comme archive.tar.gz. La propriété Path.suffixes permet d'obtenir la liste de tous les suffixes reconnus dans le dernier composant du chemin.
Le programme suivant affiche les suffixes du fichier sauvegarde.tar.gz.
1 2 3 4 | from pathlib import Path chemin = Path("sauvegarde.tar.gz") print(chemin.suffixes) |
Sortie :
1 | ['.tar', '.gz'] |
Nous pouvons comparer suffix et suffixes afin de mieux comprendre leur différence.
1 2 3 4 5 6 | from pathlib import Path chemin = Path("sauvegarde.tar.gz") print("suffix :", chemin.suffix) print("suffixes :", chemin.suffixes) |
Sortie :
1 2 | suffix : .gz suffixes : ['.tar', '.gz'] |
9. Obtenir la racine, le lecteur et l'ancrage d'un chemin
La classe Path possède les propriétés drive, root et anchor pour analyser le début d'un chemin. Leur résultat dépend notamment du type de chemin et du système d'exploitation.
- drive représente le lecteur ou la partie équivalente lorsqu'elle existe.
- root représente la racine du chemin.
- anchor représente l'ancrage complet, c'est-à-dire la combinaison logique du lecteur et de la racine.
Pour illustrer clairement la structure d'un chemin Windows indépendamment du système sur lequel le code est exécuté, nous pouvons utiliser PureWindowsPath.
1 2 3 4 5 6 7 | from pathlib import PureWindowsPath chemin = PureWindowsPath("C:/Users/Younes/Documents/cours.pdf") print("Lecteur :", chemin.drive) print("Racine :", chemin.root) print("Ancrage :", chemin.anchor) |
Sortie :
1 2 3 | Lecteur : C: Racine : \ Ancrage : C:\ |
Pour un chemin de type Unix, PurePosixPath permet de mettre en évidence la racine /.
1 2 3 4 5 6 7 | from pathlib import PurePosixPath chemin = PurePosixPath("/home/younes/documents/cours.pdf") print("Lecteur :", chemin.drive) print("Racine :", chemin.root) print("Ancrage :", chemin.anchor) |
Sortie :
1 2 3 | Lecteur : Racine : / Ancrage : / |
10. Accéder aux différents dossiers parents avec Path.parents
La propriété Path.parents permet d'accéder successivement à tous les chemins parents d'un objet Path. Elle est utile lorsqu'il faut remonter plusieurs niveaux dans une arborescence.
Le programme suivant parcourt les différents parents du chemin documents/python/cours/pdf/exemple.txt.
1 2 3 4 5 6 | from pathlib import Path chemin = Path("documents/python/cours/pdf/exemple.txt") for parent in chemin.parents: print(parent) |
Sortie :
1 2 3 4 5 | documents/python/cours/pdf documents/python/cours documents/python documents . |
Nous pouvons également accéder directement à un parent précis grâce à son indice. parents[0] correspond au parent immédiat, parents[1] au niveau supérieur, et ainsi de suite.
1 2 3 4 5 6 7 | from pathlib import Path chemin = Path("documents/python/cours/pdf/exemple.txt") print(chemin.parents[0]) print(chemin.parents[1]) print(chemin.parents[2]) |
Sortie :
1 2 3 | documents/python/cours/pdf documents/python/cours documents/python |
11. Extraire plusieurs informations d'un chemin
Les différentes propriétés de Path peuvent être combinées afin d'analyser rapidement un chemin. Nous pouvons par exemple récupérer son nom, son dossier parent, son nom sans extension, son suffixe et toutes ses parties.
Le programme suivant regroupe les principales propriétés étudiées dans ce tutoriel.
1 2 3 4 5 6 7 8 9 10 | from pathlib import Path chemin = Path("documents/python/cours.pdf") print("Chemin :", chemin) print("Nom :", chemin.name) print("Parent :", chemin.parent) print("Nom sans extension :", chemin.stem) print("Extension :", chemin.suffix) print("Parties :", chemin.parts) |
Sortie :
1 2 3 4 5 6 | Chemin : documents/python/cours.pdf Nom : cours.pdf Parent : documents/python Nom sans extension : cours Extension : .pdf Parties : ('documents', 'python', 'cours.pdf') |
Ces propriétés sont particulièrement utiles lorsqu'un programme doit analyser automatiquement des noms de fichiers, sélectionner certaines extensions ou reconstruire des chemins.
12. A retenir !
La classe Path du module pathlib fournit plusieurs propriétés permettant d'obtenir facilement les différentes parties d'un chemin.
- name retourne le dernier élément du chemin.
- parent retourne le chemin parent immédiat.
- parents permet d'accéder aux différents niveaux parents.
- parts décompose le chemin en plusieurs composantes.
- stem retourne le dernier composant sans son dernier suffixe.
- suffix retourne le dernier suffixe.
- suffixes retourne la liste des suffixes.
- drive retourne le lecteur ou la partie équivalente lorsqu'elle existe.
- root retourne la racine du chemin.
- anchor retourne l'ancrage du chemin.
Le programme suivant constitue un exemple récapitulatif permettant d'extraire les principales parties d'un chemin avec pathlib.
1 2 3 4 5 6 7 8 9 | from pathlib import Path chemin = Path("documents/python/projets/application.py") print("Nom :", chemin.name) print("Parent :", chemin.parent) print("Stem :", chemin.stem) print("Suffixe :", chemin.suffix) print("Parties :", chemin.parts) |
Sortie :
1 2 3 4 5 | Nom : application.py Parent : documents/python/projets Stem : application Suffixe : .py Parties : ('documents', 'python', 'projets', 'application.py') |
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/


