Para borrar hay una función distinta según lo que borres: un archivo, una carpeta vacía o una carpeta con cosas dentro. Usar la que no toca da un error, y eso es bueno: borrar es lo único que no se deshace.
También te puede interesar
Un archivo
from pathlib import Path
f = Path("salida/temporal.txt")
f.write_text("x")
f.unlink()
print("borrado; existe:", f.exists())salidaborrado; existe: False
unlink es el nombre técnico de borrar un archivo; con os es os.remove. Si el archivo no existe:
salidaFileNotFoundError: [Errno 2] No such file or directory: 'salida/temporal.txt'
Sin comprobar antes: missing_ok
f.unlink(missing_ok=True)
La versión anterior de esta página comprobaba con path.exists() y luego borraba. Funciona, pero entre la comprobación y el borrado otro programa puede borrarlo antes, y entonces falla igual. missing_ok=True hace las dos cosas en una: borra si está y no protesta si no está. Es lo que quieres para limpiar archivos temporales.
Carpetas
| Si es… | Usa | Si no |
|---|---|---|
| una carpeta vacía | Path.rmdir() | OSError: Directory not empty |
| una carpeta con contenido | shutil.rmtree(carpeta) | — |
| un archivo | Path.unlink() | IsADirectoryError si es carpeta |
import shutil
shutil.rmtree("copia_entera")salidarmtree; existe: False
rmtree borra todo lo que cuelga de esa ruta, sin papelera y sin preguntar. Antes de pasarle una ruta que se construye con variables, imprímela. Un error en la variable y en lugar de proyecto/temporal borra proyecto.Más información en inglés: Delete a file in Python.
Todo el código se ejecutó con Python 3.14 en un contenedor limpio antes de publicar esta página; las salidas están copiadas de esa ejecución.