Python Tutorials

Maîtrise des opérations sur les fichiers et les répertoires en Python

Spread the love

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

  1. Création de répertoires
  2. Récupération du répertoire courant
  3. Liste du contenu d’un répertoire
  4. Modification du répertoire de travail
  5. Renommage et suppression de répertoires
  6. Techniques de manipulation des chemins
  7. 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *