Initial commit

This commit is contained in:
2025-07-04 19:26:39 +02:00
commit c8682d4801
248 changed files with 12519 additions and 0 deletions

View File

@ -0,0 +1,77 @@
---
title: Informations des répertoires et fichiers
author: 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.
```python {.numberLines}
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:
```python {.numberLines}
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.
```python {.numberLines}
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)
```