Utiliser pathlib en Python pour gérer les chemins et fichiers proprement
Apprenez à utiliser pathlib en Python pour créer, lire et manipuler des chemins et fichiers sur Windows, macOS et Linux.

- Difficulté
- Facile
`pathlib` est la façon recommandée en Python pour manipuler des chemins de fichiers de manière lisible et compatible entre Windows, macOS et Linux. Au lieu de fabriquer des chemins à la main avec des chaînes de caractères, vous créez des objets Path et vous utilisez leurs méthodes pour naviguer, lire et écrire.
Ce guide montre les gestes de base utiles au quotidien : construire un chemin, parcourir un dossier, vérifier qu'un fichier existe et lire ou enregistrer du texte proprement.
Prérequis
Il faut avoir Python 3 installé et savoir exécuter un script simple. Les exemples utilisent le module standard pathlib, déjà inclus avec Python.
Matériel nécessaire
- Python 3
- Un éditeur de texte ou un IDE
- Un terminal ou l'invite de commandes
Étapes
Importer Path depuis pathlib
Commencez par importer l'objet principal du module. Dans la plupart des cas débutants, vous utiliserez surtout
Path.from pathlib import PathCréer un chemin proprement
Créez un objet
Pathà partir d'un dossier ou d'un fichier. Vous pouvez partir d'un chemin relatif ou absolu.mon_fichier = Path("documents") / "notes" / "todo.txt" print(mon_fichier)L'opérateur
/assemble les morceaux du chemin sans écrire les séparateurs à la main. C'est l'un des usages les plus pratiques depathlib.Afficher le dossier courant
Récupérez le dossier courant avec
Path.cwd(). Cela aide à comprendre depuis où votre script cherche ou crée les fichiers.courant = Path.cwd() print(courant)Pour viser le dossier personnel de l'utilisateur, utilisez
Path.home().print(Path.home())Vérifier qu'un fichier ou dossier existe
Testez l'existence d'un chemin avant de l'utiliser. Vous pouvez aussi distinguer un fichier d'un dossier.
chemin = Path("documents") / "todo.txt" print(chemin.exists()) print(chemin.is_file()) print(chemin.is_dir())Ces méthodes évitent de supposer qu'un élément est déjà présent sur le disque.
Créer un dossier si nécessaire

Créez vos dossiers avec la méthode
mkdir(). Vous pouvez demander à Python de créer aussi les dossiers parents manquants.dossier = Path("sorties") / "rapports" dossier.mkdir(parents=True, exist_ok=True)Avec
exist_ok=True, le code ne plante pas si le dossier existe déjà.Lire un fichier texte facilement

Utilisez
read_text()pour lire rapidement un fichier texte. Précisez l'encodage pour éviter des surprises selon la machine.fichier = Path("documents") / "todo.txt" contenu = fichier.read_text(encoding="utf-8") print(contenu)Cette méthode est pratique pour des fichiers petits ou moyens. Pour de très gros fichiers, une lecture ligne par ligne peut être plus adaptée, mais ce point sort de ce guide.
Écrire du texte dans un fichier
Utilisez
write_text()pour créer ou remplacer un fichier texte. Là aussi, indiquez l'encodage.fichier = Path("sorties") / "message.txt" fichier.write_text("Bonjour depuis pathlib\n", encoding="utf-8")Si le fichier n'existe pas, il sera créé. S'il existe déjà, son contenu sera remplacé.
Parcourir les fichiers d'un dossier

Listez le contenu d'un dossier avec
iterdir(). Chaque élément obtenu est lui-même un objetPath.dossier = Path("documents") for element in dossier.iterdir(): print(element)Pour filtrer avec un motif simple, utilisez
glob().for fichier in dossier.glob("*.txt"): print(fichier.name)Récupérer des informations utiles sur un chemin
Pathdonne directement le nom du fichier, son extension et son parent. Cela évite de découper des chaînes à la main.fichier = Path("documents") / "rapport.pdf" print(fichier.name) print(fichier.stem) print(fichier.suffix) print(fichier.parent)namedonne le nom complet,stemle nom sans extension etsuffixl'extension.Tester un script complet
Assemblez les opérations précédentes dans un exemple simple. Ce script crée un dossier, écrit un fichier puis le relit.
from pathlib import Path base = Path("sorties") base.mkdir(exist_ok=True) fichier = base / "demo.txt" fichier.write_text("Ligne 1\nLigne 2\n", encoding="utf-8") print("Fichier créé :", fichier) print(fichier.read_text(encoding="utf-8"))Le même code fonctionne avec la même logique sur Windows, macOS et Linux, car
pathlibadapte la représentation du chemin au système.
Erreurs fréquentes & dépannage
Erreur fréquente : mélanger des chaînes et des objets Path sans raison. Choisissez Path comme format principal pour vos chemins.
Erreur fréquente : oublier l'encodage lors de la lecture ou de l'écriture de texte. Utiliser encoding="utf-8" rend le comportement plus prévisible.
Erreur fréquente : supposer que le script travaille depuis le dossier du fichier Python. Vérifiez Path.cwd() si les chemins relatifs ne pointent pas au bon endroit.
Astuces & pour aller plus loin
Pour construire un chemin vers un fichier voisin de votre script, partez du chemin du script lui-même plutôt que du dossier courant. Par exemple : Path(__file__).parent / "donnees.txt".
Si vous avez besoin d'une chaîne classique, convertissez un objet Path avec str(mon_chemin). Faites-le seulement quand une bibliothèque l'exige.
Questions fréquentes
Faut-il encore utiliser os.path ?
Pour beaucoup de scripts débutants, `pathlib` est plus lisible et plus pratique. `os.path` existe toujours, mais `pathlib` regroupe la manipulation des chemins dans des objets et des méthodes claires.
`pathlib` fonctionne-t-il vraiment sur Windows, macOS et Linux ?
Oui, c'est précisément son intérêt principal dans ce guide. Vous écrivez la même logique Python, et `Path` gère la forme du chemin selon le système.
Comment ajouter du texte sans écraser le fichier ?
`write_text()` remplace le contenu. Pour ajouter du texte, utilisez `open()` sur un objet `Path` avec le mode `a`, par exemple `fichier.open("a", encoding="utf-8")`.
Conclusion
Pour débuter proprement, retenez cette règle simple : créez vos chemins avec Path, joignez-les avec /, puis utilisez les méthodes de l'objet pour tester, lire, écrire et parcourir. Si vous appliquez déjà cela dans vos scripts, vous éviterez une grande partie des problèmes de chemins entre systèmes.