Cómo borrar un archivo o una carpeta (3/3)

python file-io directory delete-file




Answer 11 Isaac Turner


Para evitar el problema TOCTOU resaltado por el comentario de Éric Araujo , puede detectar una excepción para llamar al método correcto:

def remove_file_or_dir(path: str) -> None:
    """ Remove a file or directory """
    try:
        shutil.rmtree(path)
    except NotADirectoryError:
        os.remove(path)

Dado que shutil.rmtree() solo eliminará directorios y os.remove() o os.unlink() solo eliminará archivos.




Answer 12 Miladiouss


Recomiendo usar un subprocess si escribir un código hermoso y legible es su taza de té:

import subprocess
subprocess.Popen("rm -r my_dir", shell=True)

Y si no eres un ingeniero de software,entonces tal vez considere el uso de Jupyter;puedes simplemente teclear comandos bash:

!rm -r my_dir

Tradicionalmente, usas shutil :

import shutil
shutil.rmtree(my_dir)