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 portablep.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.pathetpathlib(reste possible mais source de confusion) - oublier
parents=Truelors de la création d’arborescences - oublier l’encodage en lecture/écriture
exercices
- créer
data/outputet écrirenote.txtdedans. - lister tous les
.pyrécursivement et compter combien il y en a. - calculer la taille totale d’un dossier (somme des tailles de fichiers).