Retour au cours

pathlib : chemins, navigation, portabilité

pathlib remplace les manipulations de chemins basées sur des chaînes. il fournit des objets Path avec des opérations sûres et portables.

objectifs

  • créer et manipuler des Path
  • construire des chemins (/) de façon portable
  • lister, tester, créer/supprimer des fichiers et dossiers
  • lire/écrire du texte facilement

explication détaillée

from pathlib import Path donne accès à Path. opérations clés :

  • Path("data") / "file.txt" → concaténation portable
  • p.exists(), p.is_file(), p.is_dir()
  • p.read_text(encoding="utf-8"), p.write_text(...)
  • p.mkdir(parents=True, exist_ok=True), p.unlink(missing_ok=True)
  • p.glob("*.csv"), p.rglob("*.py")

exemples exécutables

from pathlib import Path
p = Path("data") / "input.txt"
p.parent.mkdir(parents=True, exist_ok=True)
p.write_text("hello", encoding="utf-8")
print(p.exists(), p.resolve())
print(p.read_text(encoding="utf-8"))
# liste des .md à la racine
for f in Path(".").glob("*.md"):
    print(f.name)
# parcours récursif
for f in Path(".").rglob("*.py"):
    pass

bonnes pratiques

  • manipulez des Path, pas des chaînes
  • définissez explicitement encoding="utf-8"
  • utilisez mkdir(parents=True, exist_ok=True) pour éviter les erreurs

pièges courants

  • mélanger os.path et pathlib (reste possible mais source de confusion)
  • oublier parents=True lors de la création d’arborescences
  • oublier l’encodage en lecture/écriture

exercices

  1. créer data/output et écrire note.txt dedans.
  2. lister tous les .py récursivement et compter combien il y en a.
  3. calculer la taille totale d’un dossier (somme des tailles de fichiers).