Comment supprimer des fichiers et des répertoires en utilisant Python

Suraj Joshi 30 janvier 2023
  1. Supprimer des fichiers en utilisant le module os en Python
  2. Supprimer des fichiers en utilisant le module pathlib en Python
  3. Suppression de fichiers avec correspondance de motifs en Python
  4. Supprimer des répertoires en utilisant le module Python os
  5. Supprimer des répertoires en utilisant le module Python pathlib
  6. Supprimer les répertoires non vides en utilisant la méthode Python shutil.rmtree
Comment supprimer des fichiers et des répertoires en utilisant Python

Cet article présente comment supprimer des fichiers et des répertoires avec des paquets intégrés en Python tels que os, pathlib et shutil.

Supprimer des fichiers en utilisant le module os en Python

os est un paquet intégré disponible à la fois en Python2 et Python3.

Nous pouvons utiliser remove() et unlink() du module os pour supprimer des fichiers en utilisant Python. Ces deux fonctions sont similaires dans leur action. Elles prennent toutes deux en argument le chemin du fichier à supprimer.

import os

os.remove("test_dir/main.py")

Elle supprime le fichier nommé main.py situé dans le test_dir. Comme nous utilisons ici le chemin relatif, test_dir doit être dans le même dossier racine que celui de notre programme Python. Nous pouvons également utiliser le chemin absolu.

import os

os.unlink("test_dir/main.py")

Cela supprime également le fichier nommé main.py situé à l’intérieur de test_dir.

Ces deux fonctions ne peuvent que supprimer des fichiers. Si nous donnons le chemin du répertoire à effacer, nous obtenons l’erreur IsADirectoryError.

De même, nous obtenons l’erreur FileNotFoundError si le fichier n’est pas présent dans le chemin spécifié.

Si nous n’avons pas la permission d’effacer le fichier, nous obtenons l’erreur PermissionError.

Pour remédier à ces erreurs lors de la suppression du fichier, nous devons utiliser la gestion des exceptions.

import os

try:
    os.remove("test_dir/main.py")
except OSError as e:
    print(f"Error:{ e.strerror}")

Production:

Error:No such file or directory

Si ce fichier n’existe pas, nous obtenons l’erreur imprimée en sortie plutôt que le programme entier à planter.

Supprimer des fichiers en utilisant le module pathlib en Python

Pour supprimer des fichiers en utilisant le module pathlib, nous faisons d’abord un objet de l’objet Path défini dans le module pathlib. Ensuite, nous utilisons la méthode unlink() pour supprimer le fichier.

from pathlib import Path

filePath = Path("test_dir/main.py")

try:
    filePath.unlink()
except OSError as e:
    print(f"Error:{ e.strerror}")

Ici, nous instancions l’objet filePath de la classe Path avec l’emplacement du fichier à supprimer.

Le module pathlib est uniquement disponible en Python 3.4 et supérieur. Pour Python 2, nous devons installer le module en utilisant pip.

Suppression de fichiers avec correspondance de motifs en Python

Nous pouvons utiliser le module glob pour faire correspondre des motifs dans des fichiers et après avoir collecté tous les fichiers qui correspondent au motif, nous pouvons les supprimer tous en utilisant l’une des méthodes spécifiées ci-dessus.

import os
import glob

py_files = glob.glob("test_dir/*.py")

for py_file in py_files:
    try:
        os.remove(py_file)
    except OSError as e:
        print(f"Error:{ e.strerror}")

Ceci efface tous les fichiers du répertoire test_dir avec l’extension .py.

Supprimer des répertoires en utilisant le module Python os

Pour délimiter les répertoires en utilisant Python, nous pouvons utiliser les répertoires os, pathlib et shutlib. os et pathlib ne peuvent effacer que les répertoires vides alors que shutlib peut aussi effacer les répertoires non vides.

import os

dirPath = "test_dir"

try:
    os.rmdir(dirPath)
except OSError as e:
    print(f"Error:{ e.strerror}")

Il supprime le répertoire vide test_dir dans notre répertoire de travail actuel.

Supprimer des répertoires en utilisant le module Python pathlib

Si le répertoire n’est pas vide, le répertoire ne peut pas être supprimé par cette méthode, nous obtenons une sortie du programme disant Error: Directory not empty.

Nous pouvons également utiliser le module pathlib pour supprimer les répertoires non vides.

from pathlib import Path

dirPath = Path("test_dir")

try:
    dirPath.rmdir()
except OSError as e:
    print(f"Error:{ e.strerror}")

Il supprime aussi le répertoire vide test_dir dans notre répertoire de travail actuel.

Supprimer les répertoires non vides en utilisant la méthode Python shutil.rmtree

Pour supprimer des répertoires non vides en Python, nous utilisons la méthode rmtree du module shutil.

import shutil

dirPath = "test_dir"

try:
    shutil.rmtree(dirPath)
except OSError as e:
    print(f"Error:{ e.strerror}")

Elle efface le répertoire test_dir de notre répertoire de travail actuel et tout son contenu.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Python File

Article connexe - Python Directory