2.1 KiB
title, author
title | author |
---|---|
Informations des répertoires et fichiers | Steve Kossouho |
Exploiter le système de fichiers
Le package pathlib
Le module pathlib
de Python 3.4+ (2014) offre des classes orientées objet pour manipuler les chemins de fichiers. Il s'agit
d'une interface moderne orientée objet pour compléter ou remplacer ce qui se faisait avec le module os.path
.
Les objets pathlib.Path
L'objet Path
du module pathlib
représente un chemin de fichier général et offre des méthodes et des propriétés
pour effectuer diverses opérations sur ledit chemin.
from pathlib import Path
# Créer un objet Path
p = Path('/chemin/vers/fichier')
Créer un chemin. Le chemin peut ou non exister réellement sur le système local, la seule contrainte étant qu'il soit valide par rapport à la norme POSIX (et Windows).
Méthodes utiles des objets pathlib.Path
Les objets Path
ont plusieurs méthodes utiles pour gérer un chemin de fichier ou de répertoire. Parmi les outils
qui renvoient les informations les plus simples :
from pathlib import Path
# Imaginons que bob est un répertoire
f = Path("/home/bob")
# Vérifier si un chemin existe
print(f"Le chemin existe : {f.exists()}")
# Générer un objet Path qui est un répertoire enfant de bob
f2 = f / "morane"
# M'affiche "/home/bob/morane"
print(f2)
# Vérifier si un chemin est un répertoire
if p.is_dir():
print("C'est un répertoire.")
# Vérifier si un chemin est un fichier
if p.is_file():
print("C'est un fichier.")
Parcourir récursivement des fichiers avec pathlib.Path
La méthode rglob()
des objets Path
peut être utilisée pour parcourir récursivement des fichiers.
from pathlib import Path
# Parcourir récursivement tous les fichiers .txt
for fichier in Path('/chemin/vers/répertoire').rglob('*.txt'):
print(fichier)
# Parcourir tous les fichiers .txt du répertoire, sans récursion
for fichier in Path('/chemin/vers/répertoire').glob('*.txt'):
print(fichier)