1070 votes

Comment supprimer / supprimer un dossier qui n'est pas vide avec Python?

Je reçois une erreur «Accès refusé» lorsque j'essaie de supprimer un dossier qui n'est pas vide. J'ai utilisé la commande suivante dans ma tentative: os.remove("/folder_name") . Quel est le moyen le plus efficace de supprimer / supprimer un dossier / répertoire qui n'est pas vide? Merci d'avance.

1719voto

ddaa Points 19102
 import shutil

shutil.rmtree('/folder_name')
 

Référence bibliothèque standard: shutil.rmtree .

161voto

kkubasik Points 1311

A partir des docs python sur os.walk() :

 # Delete everything reachable from the directory named in 'top',
# assuming there are no symbolic links.
# CAUTION:  This is dangerous!  For example, if top == '/', it
# could delete all your disk files.
import os
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))
 

7voto

P M Points 442

Si vous êtes sûr, que vous souhaitez supprimer l’arborescence entière dir et ne sont pas plus intéressé par le contenu du répertoire, puis rampant pour dir tout arbre est stupidness... juste appeler commande OS native de python pour faire cela. Il sera plus rapide, efficace et moins de consommation de mémoire.

ou * nix

En python, le code ressemblera...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X