Comment supprimer des fichiers et des répertoires en utilisant Python
-
Supprimer des fichiers en utilisant le module
os
en Python -
Supprimer des fichiers en utilisant le module
pathlib
en Python - Suppression de fichiers avec correspondance de motifs en Python
-
Supprimer des répertoires en utilisant le module Python
os
-
Supprimer des répertoires en utilisant le module Python
pathlib
-
Supprimer les répertoires non vides en utilisant la méthode Python
shutil.rmtree
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.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticle connexe - Python File
- Comment obtenir tous les fichiers d'un répertoire
- Comment ajouter du texte à un fichier en Python
- Comment vérifier si un fichier existe en Python
- Comment trouver des fichiers avec une certaine extension seulement en Python
- Comment lire des lignes spécifiques d'un fichier en Python
- Lire un fichier texte et imprimer son contenu en Python
Article connexe - Python Directory
- Lister tous les fichiers du répertoire et des sous-répertoires en Python
- Correction de l'erreur No Such File in Directory en Python
- Obtenir le répertoire du chemin en Python
- Compter le nombre de fichiers dans un répertoire en Python
- Exécuter une commande sur chaque fichier d'un dossier en Python
- Lister les sous-répertoires en Python