2017-01-25 3 views
0

Je cherche à écrire un morceau de code Python qui supprime tous les dossiers et leur contenu, mais ne supprime pas les fichiers individuels.
Par exemple, voici quelques fichiers et dossiers contenus dans un répertoire (Dossier B) avec le fichier script qui effectue la suppression. Comment puis-je supprimer folderA, folderB, folderC, etc, mais laisser les fichiers? MerciPython Supprimer tous les dossiers mais pas les fichiers

/Folder B 
    file.docx 
    fileB.docx 
    fileC.docx 
    pythonDeleteScript.py 
    folderA/ 
    folderB/ 
    folderC/ 
    folderD/ 
+1

Avez-vous regardé les modules 'shutil' et' os'? Vous pouvez utiliser ce dernier pour analyser un répertoire (et filtrer pour ne conserver que les entrées du répertoire) et le premier pour supprimer les arborescences de dossiers. SO n'est pas vraiment conçu comme un service d'écriture de code, et puisque vous avez étiqueté ce 'shutil', vous êtes clairement conscient du module. Jetez juste un oeil à 'os' /' os.path' et essayez de vous résoudre. – ShadowRanger

+0

[os.path.isdir] (https://docs.python.org/3/library/os.path.html#os.path.isdir) + [os.listdir] (https: //docs.python. org/3/library/os.html # os.listdir) + [os.rmdir] (https://docs.python.org/3/library/os.html#os.rmdir) – Copperfield

+0

@Copperfield: vous le feriez want ['shutil.rmtree'] (https://docs.python.org/3/library/shutil.html#shutil.rmtree) pour ce faire simplement quand les dossiers ne sont pas vides. Si vous êtes sur Python moderne, il peut simplifier à ['os.scandir'] (https://docs.python.org/3/library/os.html#os.scandir) (qui couvre la fonctionnalité combinée de' os.listdir' et 'os.path.isdir', mais plus efficacement) +' shutil.rmtree'. – ShadowRanger

Répondre

3

Utilisez os.listdir() pour obtenir le contenu du répertoire, os.path.isdir(path) pour voir si elle est un dossier, et si elle est, shutil.rmtree(path) pour supprimer le dossier et tout son contenu.