[python] Comment supprimer un fichier ou un dossier?



Answers

Utilisation

shutil.rmtree(path[, ignore_errors[, onerror]])

(voir doc complet sur shutil ) et / ou

os.remove

et

os.rmdir

(Doc complet sur os.remove() )

Question

Comment supprimer un fichier ou un dossier en Python?




Vous pouvez utiliser le module pathlib intégré (nécessite Python 3.4+, mais il existe des backports pour les anciennes versions sur PyPI: pathlib , pathlib2 ).

Pour supprimer un fichier, il existe la méthode unlink :

import pathlib
path = pathlib.Path(name_of_file)
path.unlink()

Ou la méthode rmdir pour supprimer un dossier vide :

import pathlib
path = pathlib.Path(name_of_folder)
path.rmdir()



Pour supprimer des fichiers:

Vous pouvez utiliser unlink ou remove .

os.unlink(path, *, dir_fd=None)

Ou

os.remove(path, *, dir_fd=None)

Cette fonction supprime (supprime) le chemin du fichier. Si path est un répertoire, OSError est OSError .

En Python 2, si le chemin n'existe pas, OSError avec [Errno 2] ( ENOENT ) est ENOENT . Dans Python 3, FileNotFoundError avec [Errno 2] ( ENOENT ) est ENOENT . En Python 3, parce que FileNotFoundError est une sous-classe de OSError , en attrapant le dernier attrapera le premier.

Pour supprimer des dossiers:

os.rmdir(path, *, dir_fd=None)

rmdir Supprime (supprime) le chemin du répertoire. Ne fonctionne que lorsque le répertoire est vide, sinon OSError est OSError . Pour supprimer des arborescences de répertoires entières, shutil.rmtree() peut être utilisé.

shutil.rmtree(path, ignore_errors=False, onerror=None)

shutil.rmtree Supprime une arborescence de répertoires entière. Le chemin doit pointer vers un répertoire (mais pas un lien symbolique vers un répertoire).

Si ignore_errors est vrai, les erreurs résultant des suppressions échouées seront ignorées et si elles sont fausses ou omises, ces erreurs sont traitées en appelant un gestionnaire spécifié par onerror ou, si cela est omis, elles déclenchent une exception.

Voir également:

os.removedirs(name)

os.removedirs(name) Supprime les répertoires de manière récursive. Fonctionne comme rmdir () sauf que, si le répertoire leaf est supprimé, removedirs () essaye de supprimer successivement chaque répertoire parent mentionné dans path jusqu'à ce qu'une erreur soit levée (ce qui est ignoré car cela signifie généralement qu'un répertoire parent n'est pas vide ).

Par exemple, os.removedirs ('foo / bar / baz') supprimera d'abord le répertoire 'foo / bar / baz', puis supprimera 'foo / bar' et 'foo' s'ils sont vides.




import os

folder = '/Path/to/yourDir/'
fileList = os.listdir(folder)

for f in fileList:
    filePath = folder + '/'+f

    if os.path.isfile(filePath):
        os.remove(filePath)

    elif os.path.isdir(filePath):
        newFileList = os.listdir(filePath)
        for f1 in newFileList:
            insideFilePath = filePath + '/' + f1

            if os.path.isfile(insideFilePath):
                os.remove(insideFilePath)



Related