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
23.01.2025

Suppression de fichiers et de répertoires en Python

Suppression avancée de fichiers et de répertoires en Python sur AlexHost VPS

Pourquoi supprimer des fichiers maîtres en Python ? La gestion des fichiers et des répertoires est une tâche essentielle pour les développeurs, en particulier sur un SDV Linux AlexHost hébergeant des applications dynamiques ou des plateformes CMS comme WordPress. Les modules os, shutil et pathlib de Python rendent la suppression de fichiers et de répertoires efficace et sûre, les SSD et l’accès root d’AlexHost garantissant des performances optimales. Ce guide couvre les méthodes de suppression avancées, avec gestion des erreurs, pour une gestion transparente des fichiers.

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

Caractéristiques 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 Python interactif

  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
file_path = 'example.txt'
try:
os.remove(file_path)
print(f'Successfully deleted {file_path}')
except FileNotFoundError:
print(f'The file {file_path} does not exist')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'An error occurred: {e}')
#

Sortie :

Suppression d’un répertoire vide

Étape 1 : Création d’un répertoire

Commencez par créer un répertoire vide nommé example_dir. Cela peut être fait en utilisant la commande suivante

mkdir example _dir
##

Étape 2 : Créer un script Python

Vous devez maintenant créer un script Python qui contiendra le code permettant de 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 = 'example_dir'
try:
os.rmdir(directory_path)

f'Successfully deleted directory {directory_path}')
except FileNotFoundError:
print(f'The directory {directory_path} does not exist')
except OSError:
print(f'The directory {directory_path} is not empty')
except Exception as e:
print(f'An error occurred: {e}')
#Sortie

Utilisation du module shutil

Étape 1 : Création d’un répertoire avec le contenu

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

mkdir example_dir_with_content
touch example_dir_with_content/file1.txt
touch example_dir_with_content/file2.txt
#

Étape 2 : Créer un script Python

Vous devez maintenant créer un script Python contenant le code nécessaire 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
'example_dir_with_content'
try:
shutil.rmtree(directory_path)
print(f'Successfully deleted directory {directory_path} and its contents')
except FileNotFoundError:
print(f'The directory {directory_path} does not exist')
except PermissionError:
print(f'Permission denied: unable to delete {directory_path}')
except Exception as e:
print(f'An error occurred: {e}')
#Sortie

Utilisation du module pathlib

lemodule pathlib fournit une interface moderne pour les chemins du système 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'The file {file_path} does not exist')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'An error occurred: {e}')
Sortie

Suppression d’un répertoire vide

from pathlib import Pathdirectory_path = Path('example_dir'
try:
directory_path.rmdir() # This will only work if the directory is empty
print(f'Successfully deleted directory {directory_path}')
except FileNotFoundError:
print(f'The directory {directory_path} does not exist')
except OSError:
print(f'The directory {directory_path} is not empty')
except Exception as e:
print(f'An error occurred: {e}')
#Sortie :

Gestion gracieuse 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 (erreur de permission) : Se produit lorsqu’un utilisateur ne dispose pas des autorisations nécessaires pour supprimer un fichier ou un répertoire.
  • OSError: Se produit lorsque diverses erreurs liées au système d’exploitation surviennent, 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 a 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