Obtenir les différentes parties d'un chemin avec pathlib en Python

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.

Sortie :

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.

Sortie :

Nous pouvons également construire le chemin progressivement avec l'opérateur /, ce qui rend généralement le code très lisible.

Sortie :

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.

Sortie :

La propriété name fonctionne également avec un chemin représentant un dossier. Elle retourne alors le dernier nom du chemin.

Sortie :

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.

Sortie :

Nous pouvons appliquer plusieurs fois parent afin de remonter dans l'arborescence.

Sortie :

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.

Sortie :

Comme parts retourne un tuple, nous pouvons accéder à une partie particulière en utilisant son indice.

Sortie :

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.

Sortie :

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.

Sortie :

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.

Sortie :

Si le dernier élément du chemin ne possède pas de suffixe, la propriété suffix retourne une chaîne vide.

Sortie :

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.

Sortie :

Nous pouvons comparer suffix et suffixes afin de mieux comprendre leur différence.

Sortie :

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.

Sortie :

Pour un chemin de type Unix, PurePosixPath permet de mettre en évidence la racine /.

Sortie :

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.

Sortie :

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.

Sortie :

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.

Sortie :

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.

Sortie :

 


 


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 *