Suppression de fichiers et de répertoires en Python ⋆ ALexHost SRL

Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!.

Utilisez le code à la caisse :

Skills
21.01.2025

Suppression de fichiers et de répertoires en Python

En Python, travailler avec des fichiers et des répertoires est une tâche courante, en particulier pour les applications qui nécessitent la manipulation de fichiers. Ce tutoriel se concentre sur les méthodes avancées de suppression de fichiers et de répertoires à l’aide de divers modules Python, notamment os, shutil et pathlib. Chacun de ces modules offre des fonctionnalités différentes pour travailler avec le système de fichiers, ce qui vous permet de gérer efficacement les fichiers et les répertoires. Pour télécharger Python, visitez le lien suivant à partir de la source officielle python.org.

Comprendre les modules

1. Module os

Le module os permet d’utiliser des fonctionnalités dépendant du système d’exploitation, telles que la lecture ou l’écriture dans le système de fichiers. Il comprend des fonctions de suppression de fichiers et de répertoires. L’utilisation du module os dans un environnement d’hébergement VPS Linux permet de contrôler efficacement la gestion des fichiers et d’autres opérations au niveau du système. Ce module permet aux développeurs d’effectuer des actions telles que la lecture, l’écriture et la suppression de fichiers et de répertoires directement sur le serveur

Caractéristiques principales :

  • os.remove(path) : Supprime le chemin d’accès à un fichier.
  • os.rmdir(path) : Supprime (détruit) le chemin d’accès à un répertoire. Le répertoire doit être vide.
  • os.unlink(path) : Autre nom de la fonction os.remove() utilisée pour supprimer un fichier.

2. Module shutil

Le module shutil offre une interface de haut niveau pour travailler avec des fichiers. Il est particulièrement utile pour copier et supprimer des répertoires et des fichiers.

Fonctions principales :

  • shutil.rmtree(path) : Supprime récursivement un répertoire et tout son contenu, y compris les sous-répertoires et les fichiers.
  • shutil.move(src, dst) : Déplace un fichier ou un répertoire vers un autre emplacement. Peut également être utilisé pour supprimer des fichiers en les déplaçant dans un répertoire inexistant.

3. Module Pathlib

Le module pathlib fournit une approche orientée objet pour travailler avec les chemins du système de fichiers. Ce module est apparu dans Python 3.4 et est considéré comme plus intuitif et plus facile à lire.

Caractéristiques principales :

  • Path.unlink() : Supprime le fichier.
  • Path.rmdir() : Supprime un répertoire vide.
  • Path.rmtree() : Pour supprimer un répertoire et son contenu, shutil.rmtree() est généralement utilisé en conjonction avec Path.

Méthodes avancées de suppression de fichiers et de répertoires

Utilisation du module os

Voici comment utiliser le module os pour supprimer des fichiers et des répertoires :

Option A : Exécution en mode interactif Python

  1. Ouvrez une session interactive Python en tapant :
    python3

    (Utilisez python si c’est ainsi que Python est configuré sur votre système, mais python3 est généralement la commande recommandée pour Python 3.x).

  2. Copiez et collez le code directement dans la session interactive (script ci-dessous)

oiseau B : écrire dans un fichier script Python

  1. Créez un nouveau fichier à l’aide d’un éditeur de texte tel que nano:
    nano remove_file.py
  2. Copiez et collez le code suivant dans le fichier (script ci-dessous)
  3. Vous pouvez maintenant exécuter votre script Python depuis le terminal :
    python3 remove_file.py

Suppression d’un seul fichier

import os
chemin_du_fichier = 'exemple.txt'
try:
os.remove(chemin_fichier)
print(f'Suppression réussie de {chemin_de_fichier}')
except FileNotFoundError :
print(f'Le fichier {chemin_du_fichier} n'existe pas')
except PermissionError :
print(f'Permission denied : unable to delete {file_path}')
except Exception as e :
print(f'Une erreur s'est produite : {e}')

Sortie :

Suppression d’un répertoire vide

Étape 1 : Créer un répertoire

Commencez par créer un répertoire vide nommé example_dir. Cela peut être fait à l’aide de la commande suivante :

mkdir exemple_répertoire

Étape 2 : Créer un script Python

Vous devez maintenant créer un script Python qui contiendra le code pour supprimer le répertoire vide. Vous pouvez utiliser un éditeur de texte tel que nano pour créer le script.

  1. Ouvrez nano et créez un nouveau fichier Python :
    nano remove_directory.py
  2. Copiez et collez le code suivant dans le fichier (code ci-dessous)
  3. Exécutez maintenant le script Python que vous venez de créer :
    python3 remove_directory.py

import os
directory_path = 'exemple_dir'
try:
os.rmdir(chemin_du_répertoire)

f'Successfully deleted directory {directory_path}')
except FileNotFoundError :
print(f'Le répertoire {chemin_du_répertoire} n'existe pas')
except OSError :
print(f'Le répertoire {chemin_du_répertoire} n'est pas vide')
except Exception as e :
print(f "Une erreur s'est produite : {e}")

Sortie :

Utilisation du module shutil

Étape 1 : Créer un répertoire avec le contenu

Tout d’abord, créez un répertoire nommé exemple_dir_avec_contenu et ajoutez-y quelques fichiers. Cela peut être fait à l’aide des commandes suivantes :

mkdir répertoire_exemple_avec_contenu
touch exemple_répertoire_avec_contenu/fichier1.txt
touch exemple_dir_avec_contenu/fichier2.txt

Étape 2 : Créer un script Python

Vous devez maintenant créer un script Python contenant le code pour supprimer le répertoire et son contenu. Vous pouvez utiliser un éditeur de texte tel que nano pour créer le script.

  1. Ouvrez nano et créez un nouveau fichier Python :
    nano remove_directory_content.py
  2. Copiez et collez le code suivant dans le fichier (code ci-dessous)
  3. Exécutez maintenant le script Python que vous venez de créer :
    python3 remove_directory_content.py

Utilisez shutil.rmtree() pour supprimer les répertoires contenant du contenu :

import shutil
'exemple_répertoire_avec_contenu'
try:
shutil.rmtree(chemin_répertoire)
print(f'Suppression réussie du répertoire {chemin_répertoire} et de son contenu')
except FileNotFoundError :
print(f'Le répertoire {chemin_du_répertoire} n'existe pas')
except PermissionError :
print(f'Permission denied : unable to delete {directory_path}')
except Exception as e :
print(f "Une erreur s'est produite : {e}")

Sortie :

Utilisation du module pathlib

lemodule pathlib fournit une interface moderne pour les chemins d’accès aux systèmes de fichiers :

Suppression d’un fichier

from pathlib import Path
file_path = Path('example.txt')
try:
file_path.unlink()
print(f'Successfully deleted {file_path}')
except FileNotFoundError :
print(f'Le fichier {chemin_fichier} n'existe pas')
except PermissionError :
print(f'Permission denied : unable to delete {file_path}')
except Exception as e :
print(f "Une erreur s'est produite : {e}")

Sortie :

Suppression d’un répertoire vide

from pathlib import Pathdirectory_path = Path('example_dir')
try:
directory_path.rmdir() # Cela ne fonctionnera que si le répertoire est vide
print(f'Successfully deleted directory {directory_path}')
except FileNotFoundError :
print(f'Le répertoire {chemin_du_répertoire} n'existe pas')
except OSError :
print(f'Le répertoire {chemin_du_répertoire} n'est pas vide')
except Exception as e :
print(f "Une erreur s'est produite : {e}")

Sortie :

Traitement gracieux des erreurs

Lorsque l’on travaille avec des opérations sur des fichiers, il est très important de gérer les exceptions de manière gracieuse afin d’éviter que le programme ne se bloque. Les exceptions les plus courantes sont les suivantes

  • FileNotFoundError: se produit lorsque l’on tente de supprimer un fichier ou un répertoire inexistant.
  • PermissionError: se produit lorsqu’un utilisateur ne dispose pas desautorisations nécessaires pour supprimer un fichier ou un répertoire.
  • OSError: se produit pour diverses erreurs liées au système d’exploitation, y compris une tentative de suppression d’un répertoire non vide.

Conclusion

Dans ce tutoriel, nous avons vu comment utiliser les modules Python tels que os, shutil et pathlib pour supprimer des fichiers et des répertoires. Chaque module possède des avantages uniques, et comprendre comment les utiliser efficacement vous permettra d’étendre votre capacité à gérer les systèmes de fichiers dans vos applications. En maîtrisant ces techniques, vous serez en mesure d’automatiser les tâches de gestion de fichiers, de travailler avec des fichiers de manière plus intuitive et d’écrire des scripts robustes qui interagissent avec le système de fichiers.

Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!.

Utilisez le code à la caisse :

Skills