Ce tutoriel fournit un guide complet sur la manipulation essentielle des fichiers et des répertoires en Python, en exploitant la puissance des modules os
et shutil
. Nous allons couvrir la création, l’accès, la liste, la modification et la suppression de répertoires, vous dotant ainsi des compétences nécessaires pour gérer efficacement votre système de fichiers au sein de vos scripts Python.
Table des matières
- Création de répertoires
- Récupération du répertoire courant
- Liste du contenu d’un répertoire
- Modification du répertoire de travail
- Renommage et suppression de répertoires
- Techniques de manipulation des chemins
- Gestion robuste des erreurs
1. Création de répertoires
Le module os
offre des fonctions pour interagir avec le système d’exploitation. os.mkdir()
crée un seul répertoire, tandis que os.makedirs()
gère la création de répertoires imbriqués. Le paramètre exist_ok
empêche les erreurs si le répertoire existe déjà.
import os
# Créer un seul répertoire
os.mkdir("my_new_directory")
# Créer des répertoires imbriqués
os.makedirs("nested/directories/example", exist_ok=True)
print("Répertoires créés avec succès !")
2. Récupération du répertoire courant
Utilisez os.getcwd()
pour récupérer le répertoire de travail courant.
import os
repertoire_courant = os.getcwd()
print(f"Répertoire de travail courant : {repertoire_courant}")
3. Liste du contenu d’un répertoire
os.listdir()
liste toutes les entrées (fichiers et répertoires) d’un chemin. Combinez-le avec os.path.isdir()
pour filtrer uniquement les répertoires.
import os
chemin_repertoire = "."
toutes_entrees = os.listdir(chemin_repertoire)
repertoires = [entree for entree in toutes_entrees if os.path.isdir(os.path.join(chemin_repertoire, entree))]
print("Répertoires :")
for repertoire in repertoires:
print(repertoire)
4. Modification du répertoire de travail
os.chdir()
modifie le répertoire de travail courant. Incluez toujours la gestion des erreurs (par exemple, en utilisant des blocs try-except
) pour gérer les problèmes potentiels tels que les répertoires inexistants.
import os
try:
os.chdir("my_new_directory")
print(f"Répertoire de travail courant modifié en : {os.getcwd()}")
os.chdir("..") #Remonter d'un niveau de répertoire
print(f"Répertoire de travail courant restauré en : {os.getcwd()}")
except FileNotFoundError:
print("Erreur : Répertoire introuvable.")
except OSError as e:
print(f"Une erreur système d'exploitation s'est produite : {e}")
5. Renommage et suppression de répertoires
os.rename()
renomme les répertoires. os.rmdir()
supprime les répertoires vides. Pour les répertoires non vides, utilisez shutil.rmtree()
avec une extrême prudence, car il supprime récursivement tout ce qui se trouve dans le répertoire cible. Sauvegardez toujours les données importantes avant d’utiliser cette fonction.
import os
import shutil
# Renommer un répertoire
os.rename("my_new_directory", "renamed_directory")
# Supprimer un répertoire vide
os.rmdir("empty_directory") #Nécessite un répertoire vide nommé "empty_directory"
# Supprimer un répertoire non vide (à utiliser avec une extrême prudence !)
shutil.rmtree("non_empty_directory") #Nécessite un répertoire nommé "non_empty_directory" - ceci supprimera tout son contenu.
print("Opérations sur les répertoires terminées.")
6. Techniques de manipulation des chemins
Le module os.path
fournit des outils pour une manipulation sûre et portable des chemins, essentielle pour éviter les problèmes spécifiques à la plateforme.
import os
# Joindre des chemins en toute sécurité
chemin = os.path.join("chemin", "vers", "mon", "fichier.txt")
# Obtenir le nom du fichier et l'extension
nom_fichier, extension_fichier = os.path.splitext(chemin)
# Vérifier si un chemin existe
if os.path.exists(chemin):
print("Chemin existe")
7. Gestion robuste des erreurs
Anticipez toujours les erreurs potentielles (par exemple, FileNotFoundError
, PermissionError
, OSError
) et mettez en œuvre les mécanismes de gestion des erreurs appropriés pour rendre votre code robuste et éviter les plantages inattendus.