Bases

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.

Utiliser pathlib en Python pour gérer les chemins et fichiers proprement
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

  1. 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 Path
  2. Cré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 de pathlib.

  3. 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())
  4. 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.

  5. Créer un dossier si nécessaire

    Une main utilise un ordinateur portable pendant qu’un nouveau dossier apparaît dans une fenêtre de gestion de fichiers à l’écran, sur un bureau simple éclairé par la lumière du jour.

    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à.

  6. Lire un fichier texte facilement

    Vue par-dessus l’épaule d’un ordinateur portable affichant un fichier texte ouvert à côté d’un éditeur de code, avec les mains près du clavier.

    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.

  7. É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é.

  8. Parcourir les fichiers d'un dossier

    Un ordinateur portable affiche un dossier contenant plusieurs fichiers à côté d’une fenêtre de code, dans un espace de travail sobre éclairé naturellement.

    Listez le contenu d'un dossier avec iterdir(). Chaque élément obtenu est lui-même un objet Path.

    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)
  9. Récupérer des informations utiles sur un chemin

    Path donne 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)

    name donne le nom complet, stem le nom sans extension et suffix l'extension.

  10. 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 pathlib adapte 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.

Commentaires · Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire