- À propos du module pathlib Python
- Créer un chemin avec Path
- Obtenir des informations sur un chemin
- Construire et combiner des chemins
- Tester l'existence et le type d'un chemin
- Parcourir le contenu d'un dossier
- Rechercher des fichiers avec glob() et rglob()
- Créer des fichiers et des dossiers
- Lire et écrire dans un fichier
- Renommer, déplacer et supprimer des fichiers
- Manipuler les noms et extensions des fichiers
- Principales propriétés et méthodes de pathlib
Le module pathlib est un module de la bibliothèque standard Python permettant de créer et de manipuler facilement les chemins des fichiers et des dossiers. Il propose une approche moderne et orientée objet de la gestion des chemins.
1. À propos du module pathlib Python
Le module pathlib fournit plusieurs classes permettant de représenter les chemins du système de fichiers. La classe la plus utilisée est Path. Un objet Path peut représenter aussi bien un fichier qu'un dossier.
pathlib fait partie de la bibliothèque standard de Python. Il n'est donc pas nécessaire de l'installer avec pip. Pour l'utiliser, nous pouvons importer directement la classe Path.
Dans l'exemple suivant, nous créons un objet Path représentant le dossier documents, puis nous affichons le chemin obtenu.
1 2 3 4 | from pathlib import Path chemin = Path("documents") print(chemin) |
Sortie :
1 | documents |
Contrairement à une simple chaîne de caractères, un objet Path dispose de nombreuses propriétés et méthodes permettant de manipuler directement le chemin.
2. Créer un chemin avec Path
La classe Path permet de créer un chemin à partir d'une chaîne de caractères. Ce chemin peut représenter un fichier ou un dossier.
L'exemple suivant crée un chemin relatif vers le fichier cours.txt situé dans le dossier documents.
1 2 3 4 | from pathlib import Path chemin = Path("documents/cours.txt") print(chemin) |
Sortie :
1 | documents/cours.txt |
La méthode Path.cwd() permet d'obtenir le répertoire de travail courant du programme Python.
1 2 3 4 | from pathlib import Path chemin = Path.cwd() print(chemin) |
Sortie possible :
1 | C:\Users\dell\Desktop\python |
La méthode Path.home() permet d'obtenir le répertoire personnel de l'utilisateur actuellement connecté.
1 2 3 4 | from pathlib import Path chemin = Path.home() print(chemin) |
Sortie possible :
1 | C:\Users\dell |
3. Obtenir des informations sur un chemin
Les objets Path possèdent plusieurs propriétés permettant d'extraire les différentes parties d'un chemin. Parmi les plus importantes figurent name, stem, suffix et parent.
L'exemple suivant récupère le nom du fichier, son nom sans extension, son extension et son dossier parent.
1 2 3 4 5 6 7 | from pathlib import Path chemin = Path("documents/python/cours.pdf") print(chemin.name) print(chemin.stem) print(chemin.suffix) print(chemin.parent) |
Sortie :
1 2 3 4 | cours.pdf cours .pdf documents/python |
La propriété parts permet de décomposer un chemin en plusieurs composants.
1 2 3 4 | from pathlib import Path chemin = Path("documents/python/cours.pdf") print(chemin.parts) |
Sortie :
1 | ('documents', 'python', 'cours.pdf') |
4. Construire et combiner des chemins
L'un des avantages importants de pathlib est la possibilité de construire des chemins à l'aide de l'opérateur /. Il n'est donc pas nécessaire de concaténer manuellement les chaînes représentant les dossiers et les fichiers.
Dans l'exemple suivant, nous construisons progressivement le chemin vers le fichier cours.pdf.
1 2 3 4 5 | from pathlib import Path dossier = Path("documents") chemin = dossier / "python" / "cours.pdf" print(chemin) |
Sortie :
1 | documents/python/cours.pdf |
La méthode resolve() permet d'obtenir le chemin absolu correspondant à un chemin relatif.
1 2 3 4 | from pathlib import Path chemin = Path("documents/cours.txt") print(chemin.resolve()) |
Sortie possible :
1 | C:\Users\dell\Desktop\python\documents\cours.txt |
5. Tester l'existence et le type d'un chemin
La méthode exists() permet de vérifier si un chemin existe réellement sur le système. Elle retourne True si le chemin existe et False dans le cas contraire.
L'exemple suivant vérifie si le dossier documents existe.
1 2 3 4 | from pathlib import Path chemin = Path("documents") print(chemin.exists()) |
Sortie possible :
1 | True |
Les méthodes is_file() et is_dir() permettent de déterminer respectivement si le chemin représente un fichier ou un dossier.
1 2 3 4 5 | from pathlib import Path chemin = Path("documents/cours.txt") print(chemin.is_file()) print(chemin.is_dir()) |
Sortie possible :
1 2 | True False |
6. Parcourir le contenu d'un dossier
La méthode iterdir() permet de parcourir les fichiers et les sous-dossiers contenus directement dans un dossier. Chaque élément obtenu est un objet Path.
Dans l'exemple suivant, nous affichons tous les éléments présents dans le dossier documents.
1 2 3 4 5 | from pathlib import Path dossier = Path("documents") for element in dossier.iterdir(): print(element) |
Sortie possible :
1 2 3 | documents/cours.txt documents/python.pdf documents/images |
Nous pouvons également utiliser is_file() afin de n'afficher que les fichiers du dossier.
1 2 3 4 5 6 | from pathlib import Path dossier = Path("documents") for element in dossier.iterdir(): if element.is_file(): print(element.name) |
Sortie possible :
1 2 | cours.txt python.pdf |
7. Rechercher des fichiers avec glob() et rglob()
La méthode glob() permet de rechercher des fichiers correspondant à un motif. Par exemple, le motif *.txt permet de rechercher les fichiers possédant l'extension .txt.
L'exemple suivant recherche tous les fichiers texte présents directement dans le dossier documents.
1 2 3 4 5 | from pathlib import Path dossier = Path("documents") for fichier in dossier.glob("*.txt"): print(fichier) |
Sortie possible :
1 2 | documents/cours.txt documents/notes.txt |
La méthode rglob() effectue une recherche récursive. Elle permet donc de rechercher également dans les sous-dossiers.
1 2 3 4 5 | from pathlib import Path dossier = Path("documents") for fichier in dossier.rglob("*.pdf"): print(fichier) |
Sortie possible :
1 2 3 | documents/python.pdf documents/cours/algebre.pdf documents/cours/analyse.pdf |
8. Créer des fichiers et des dossiers
La méthode mkdir() permet de créer un nouveau dossier. L'option exist_ok=True évite de provoquer une erreur lorsque le dossier existe déjà.
L'exemple suivant crée un dossier nommé python.
1 2 3 4 5 | from pathlib import Path dossier = Path("python") dossier.mkdir(exist_ok=True) print(dossier.exists()) |
Sortie :
1 | True |
Pour créer plusieurs niveaux de dossiers en une seule opération, nous pouvons utiliser l'option parents=True.
1 2 3 4 5 | from pathlib import Path dossier = Path("documents/python/exercices") dossier.mkdir(parents=True, exist_ok=True) print(dossier) |
Sortie :
1 | documents/python/exercices |
La méthode touch() permet de créer un fichier vide s'il n'existe pas.
1 2 3 4 5 | from pathlib import Path fichier = Path("cours.txt") fichier.touch() print(fichier.exists()) |
Sortie :
1 | True |
9. Lire et écrire dans un fichier
La méthode write_text() permet d'écrire directement du texte dans un fichier. Si le fichier n'existe pas, il est créé. S'il existe déjà, son contenu est remplacé.
Dans l'exemple suivant, nous écrivons une phrase dans le fichier cours.txt.
1 2 3 4 5 | from pathlib import Path fichier = Path("cours.txt") fichier.write_text("Bienvenue au cours Python", encoding="utf-8") print("Texte enregistré") |
Sortie :
1 | Texte enregistré |
La méthode read_text() permet ensuite de lire directement le contenu textuel du fichier.
1 2 3 4 5 | from pathlib import Path fichier = Path("cours.txt") contenu = fichier.read_text(encoding="utf-8") print(contenu) |
Sortie :
1 | Bienvenue au cours Python |
Pour les fichiers binaires, pathlib propose également les méthodes read_bytes() et write_bytes().
10. Renommer, déplacer et supprimer des fichiers
La méthode rename() permet de renommer un fichier ou un dossier. Dans l'exemple suivant, le fichier cours.txt est renommé en python.txt.
1 2 3 4 5 | from pathlib import Path fichier = Path("cours.txt") nouveau = fichier.rename("python.txt") print(nouveau) |
Sortie :
1 | python.txt |
La méthode rename() peut également servir à déplacer un élément lorsque le chemin de destination désigne un autre dossier, sous réserve des règles du système de fichiers utilisé.
1 2 3 4 5 | from pathlib import Path fichier = Path("python.txt") destination = fichier.rename(Path("documents") / "python.txt") print(destination) |
Sortie :
1 | documents/python.txt |
La méthode unlink() permet de supprimer un fichier.
1 2 3 4 5 | from pathlib import Path fichier = Path("python.txt") fichier.unlink() print(fichier.exists()) |
Sortie :
1 | False |
La méthode rmdir() permet de supprimer un dossier vide. Elle provoque une erreur si le dossier contient encore des fichiers ou des sous-dossiers.
1 2 3 4 5 | from pathlib import Path dossier = Path("test") dossier.rmdir() print(dossier.exists()) |
Sortie :
1 | False |
11. Manipuler les noms et extensions des fichiers
La propriété suffix permet de récupérer l'extension d'un fichier tandis que stem retourne son nom sans la dernière extension.
L'exemple suivant récupère ces informations pour le fichier cours.pdf.
1 2 3 4 5 6 | from pathlib import Path fichier = Path("documents/cours.pdf") print(fichier.name) print(fichier.stem) print(fichier.suffix) |
Sortie :
1 2 3 | cours.pdf cours .pdf |
La méthode with_suffix() permet de construire un nouveau chemin en remplaçant l'extension du fichier. Elle ne convertit pas le contenu du fichier.
1 2 3 4 5 | from pathlib import Path fichier = Path("cours.txt") nouveau = fichier.with_suffix(".pdf") print(nouveau) |
Sortie :
1 | cours.pdf |
La méthode with_name() permet de remplacer le nom final d'un chemin.
1 2 3 4 5 | from pathlib import Path fichier = Path("documents/cours.txt") nouveau = fichier.with_name("exercices.txt") print(nouveau) |
Sortie :
1 | documents/exercices.txt |
12. Principales propriétés et méthodes de pathlib
La classe Path fournit de nombreuses propriétés et méthodes. Voici les plus utiles à connaître pour commencer à travailler avec le module pathlib.
| Propriété ou méthode | Description |
|---|---|
| Path() | Crée un objet représentant un chemin. |
| Path.cwd() | Retourne le répertoire de travail courant. |
| Path.home() | Retourne le répertoire personnel de l'utilisateur. |
| name | Retourne le nom final du fichier ou du dossier. |
| stem | Retourne le nom final sans la dernière extension. |
| suffix | Retourne la dernière extension du fichier. |
| parent | Retourne le chemin du dossier parent. |
| parts | Décompose le chemin en plusieurs composants. |
| exists() | Vérifie si le chemin existe. |
| is_file() | Vérifie si le chemin correspond à un fichier. |
| is_dir() | Vérifie si le chemin correspond à un dossier. |
| iterdir() | Parcourt le contenu direct d'un dossier. |
| glob() | Recherche des éléments correspondant à un motif. |
| rglob() | Effectue une recherche récursive à partir d'un dossier. |
| mkdir() | Crée un dossier. |
| touch() | Crée un fichier ou met à jour sa date de modification. |
| read_text() | Lit le contenu textuel d'un fichier. |
| write_text() | Écrit du texte dans un fichier. |
| read_bytes() | Lit le contenu binaire d'un fichier. |
| write_bytes() | Écrit des données binaires dans un fichier. |
| resolve() | Retourne une représentation absolue du chemin. |
| rename() | Renomme ou déplace un fichier ou un dossier. |
| unlink() | Supprime un fichier ou un lien symbolique. |
| rmdir() | Supprime un dossier vide. |
| with_name() | Construit un chemin avec un autre nom final. |
| with_suffix() | Construit un chemin avec une autre extension. |
Le module pathlib constitue ainsi une solution moderne et pratique pour travailler avec les fichiers, les dossiers et les chemins en Python. Il permet de remplacer de nombreuses manipulations traditionnellement réalisées avec os.path par une syntaxe orientée objet souvent plus lisible.
Voir Aussi
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/



