Supprimer des fichiers et dossiers avec os.remove() et os.rmdir() en Python

1. À propos de la suppression de fichiers et dossiers en Python

Le module os de Python fournit plusieurs fonctions permettant de manipuler les fichiers et les dossiers du système. Parmi elles, os.remove() permet de supprimer un fichier, tandis que os.rmdir() permet de supprimer un dossier vide.

Ces opérations modifient directement le système de fichiers. Il est donc important de vérifier le chemin avant d'effectuer une suppression, car un fichier supprimé avec os.remove() n'est généralement pas envoyé dans la corbeille.

Pour utiliser ces fonctions, nous devons commencer par importer le module os. Le programme suivant vérifie simplement que le module est disponible.

Sortie :

2. Supprimer un fichier avec os.remove()

La fonction os.remove() permet de supprimer un fichier en indiquant son nom ou son chemin. Sa syntaxe générale est os.remove(chemin).

Supposons que le fichier temp.txt existe dans le dossier courant. Le programme suivant supprime ce fichier puis affiche un message confirmant l'opération.

Sortie :

Il est également possible d'indiquer le chemin vers un fichier situé dans un sous-dossier. Dans l'exemple suivant, nous supprimons le fichier cours.txt situé dans le dossier documents.

Sortie :

3. Vérifier l'existence d'un fichier avant sa suppression

Si nous utilisons os.remove() sur un fichier qui n'existe pas, Python déclenche une erreur. Il est donc souvent préférable de vérifier préalablement l'existence du fichier avec os.path.isfile().

Le programme suivant supprime temp.txt uniquement si ce fichier existe réellement.

Sortie possible si le fichier existe :

Si le fichier est absent, os.path.isfile() renvoie False et l'instruction de suppression n'est pas exécutée.

Sortie possible si le fichier n'existe pas :

4. Supprimer un dossier vide avec os.rmdir()

La fonction os.rmdir() permet de supprimer un dossier vide. Contrairement à os.remove(), elle est destinée aux répertoires et non aux fichiers.

Supposons que le dossier temp existe et ne contienne aucun fichier ni sous-dossier. Le programme suivant le supprime.

Sortie :

La fonction os.rmdir() ne peut supprimer qu'un dossier vide. Si le dossier contient encore des fichiers ou des sous-dossiers, Python déclenche une erreur.

Dans l'exemple suivant, nous tentons de supprimer le dossier documents qui contient encore des éléments.

Sortie possible :

Le texte exact de l'erreur peut varier selon le système d'exploitation.

5. Vérifier l'existence d'un dossier avant sa suppression

Avant d'utiliser os.rmdir(), nous pouvons vérifier que le chemin correspond réellement à un dossier grâce à os.path.isdir().

Le programme suivant vérifie l'existence du dossier temp avant de tenter sa suppression.

Sortie possible :

Cette vérification évite notamment d'appeler os.rmdir() lorsque le chemin n'existe pas ou lorsqu'il correspond à un fichier ordinaire.

6. Différence entre os.remove() et os.rmdir()

Les fonctions os.remove() et os.rmdir() effectuent toutes les deux une suppression, mais elles ne s'appliquent pas au même type d'élément.

  • os.remove(chemin) permet de supprimer un fichier.
  • os.rmdir(chemin) permet de supprimer un dossier vide.
  • os.remove() ne doit pas être utilisé pour supprimer un dossier.
  • os.rmdir() ne permet pas de supprimer un dossier contenant encore des éléments.

Le programme suivant illustre les deux opérations. Il supprime d'abord le fichier temp.txt, puis le dossier vide temp.

Sortie :

7. Supprimer plusieurs fichiers

La fonction os.remove() peut être utilisée dans une boucle for afin de supprimer plusieurs fichiers automatiquement. Cette méthode est utile lorsqu'un programme doit nettoyer plusieurs fichiers temporaires.

Dans l'exemple suivant, nous disposons d'une liste contenant trois noms de fichiers. Chaque fichier est vérifié avec os.path.isfile() avant sa suppression.

Sortie possible :

Cette technique permet de supprimer uniquement les fichiers réellement présents et d'éviter une erreur lorsqu'un élément de la liste est absent.

8. Gérer les erreurs de suppression

Une suppression peut échouer même lorsque le chemin semble correct. Le fichier peut par exemple être absent ou les permissions peuvent empêcher sa suppression. Une structure try...except permet de gérer ces situations.

Le programme suivant tente de supprimer temp.txt et intercepte les principales erreurs susceptibles de se produire.

Sortie possible si le fichier n'existe pas :

Nous pouvons appliquer le même principe à os.rmdir(). Dans l'exemple suivant, le programme distingue notamment un dossier inexistant d'un dossier qui ne peut pas être supprimé.

Sortie possible si le dossier n'est pas vide :

9. Supprimer un fichier ou un dossier selon le type du chemin

Nous pouvons combiner os.path.isfile(), os.path.isdir(), os.remove() et os.rmdir() afin de choisir automatiquement l'opération appropriée selon le type du chemin.

Le programme suivant vérifie d'abord si element correspond à un fichier. Dans ce cas, il utilise os.remove(). S'il correspond à un dossier, il utilise os.rmdir().

Sortie possible si element est un fichier :

Cette méthode est pratique lorsqu'un programme reçoit un chemin dont nous ne connaissons pas à l'avance la nature.

10. Résumé

Le module os permet de supprimer simplement des fichiers et des dossiers grâce aux fonctions os.remove() et os.rmdir().

  • os.remove() permet de supprimer un fichier.
  • os.rmdir() permet de supprimer un dossier vide.
  • os.path.isfile() permet de vérifier qu'un chemin correspond à un fichier.
  • os.path.isdir() permet de vérifier qu'un chemin correspond à un dossier.
  • os.path.exists() permet de vérifier l'existence générale d'un chemin.
  • Une boucle for permet de supprimer plusieurs fichiers.
  • Une structure try...except permet de gérer les erreurs lors d'une suppression.
  • Un dossier contenant encore des fichiers ne peut pas être supprimé avec os.rmdir().

Le programme suivant constitue un exemple complet permettant de supprimer un fichier ou un dossier vide selon la nature du chemin indiqué.

Sortie possible :

 


 


Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


Leave a Reply

Your email address will not be published. Required fields are marked *