- À propos de la suppression de fichiers et dossiers en Python
- Supprimer un fichier avec os.remove()
- Vérifier l'existence d'un fichier avant sa suppression
- Supprimer un dossier vide avec os.rmdir()
- Vérifier l'existence d'un dossier avant sa suppression
- Différence entre os.remove() et os.rmdir()
- Supprimer plusieurs fichiers
- Gérer les erreurs de suppression
- Supprimer un fichier ou un dossier selon le type du chemin
- Résumé
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.
1 2 3 | import os print("Module os chargé.") |
Sortie :
1 | Module os chargé. |
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.
1 2 3 4 | import os os.remove("temp.txt") print("Le fichier a été supprimé.") |
Sortie :
1 | Le fichier a été supprimé. |
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.
1 2 3 4 5 6 | import os chemin = "documents/cours.txt" os.remove(chemin) print("Le fichier cours.txt a été supprimé.") |
Sortie :
1 | Le fichier cours.txt a été supprimé. |
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.
1 2 3 4 5 6 7 8 9 | import os chemin = "temp.txt" if os.path.isfile(chemin): os.remove(chemin) print("Le fichier a été supprimé.") else: print("Le fichier n'existe pas.") |
Sortie possible si le fichier existe :
1 | Le fichier a été supprimé. |
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 :
1 | 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.
1 2 3 4 | import os os.rmdir("temp") print("Le dossier a été supprimé.") |
Sortie :
1 | Le dossier a été supprimé. |
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.
1 2 3 | import os os.rmdir("documents") |
Sortie possible :
1 | OSError: [Errno 39] Directory not empty: 'documents' |
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.
1 2 3 4 5 6 7 8 9 | import os dossier = "temp" if os.path.isdir(dossier): os.rmdir(dossier) print("Le dossier a été supprimé.") else: print("Le dossier n'existe pas.") |
Sortie possible :
1 | Le dossier a été supprimé. |
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.
1 2 3 4 5 6 7 | import os os.remove("temp.txt") print("Fichier supprimé.") os.rmdir("temp") print("Dossier supprimé.") |
Sortie :
1 2 | Fichier supprimé. Dossier supprimé. |
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.
1 2 3 4 5 6 7 8 9 10 | import os fichiers = ["temp1.txt", "temp2.txt", "temp3.txt"] for fichier in fichiers: if os.path.isfile(fichier): os.remove(fichier) print(fichier, "a été supprimé.") else: print(fichier, "est introuvable.") |
Sortie possible :
1 2 3 | temp1.txt a été supprimé. temp2.txt a été supprimé. temp3.txt est introuvable. |
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.
1 2 3 4 5 6 7 8 9 10 11 | import os chemin = "temp.txt" try: os.remove(chemin) print("Le fichier a été supprimé.") except FileNotFoundError: print("Le fichier n'existe pas.") except PermissionError: print("Permission refusée.") |
Sortie possible si le fichier n'existe pas :
1 | 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é.
1 2 3 4 5 6 7 8 9 10 11 | import os dossier = "documents" try: os.rmdir(dossier) print("Le dossier a été supprimé.") except FileNotFoundError: print("Le dossier n'existe pas.") except OSError: print("Le dossier ne peut pas être supprimé.") |
Sortie possible si le dossier n'est pas vide :
1 | Le dossier ne peut pas être supprimé. |
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().
1 2 3 4 5 6 7 8 9 10 11 12 | import os chemin = "element" if os.path.isfile(chemin): os.remove(chemin) print("Le fichier a été supprimé.") elif os.path.isdir(chemin): os.rmdir(chemin) print("Le dossier vide a été supprimé.") else: print("Le chemin n'existe pas.") |
Sortie possible si element est un fichier :
1 | Le fichier a été supprimé. |
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é.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import os chemin = "temp" try: if os.path.isfile(chemin): os.remove(chemin) print("Fichier supprimé.") elif os.path.isdir(chemin): os.rmdir(chemin) print("Dossier vide supprimé.") else: print("Le chemin n'existe pas.") except PermissionError: print("Permission refusée.") except OSError: print("Le dossier n'est peut-être pas vide.") |
Sortie possible :
1 | Dossier vide supprimé. |
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/


