Cómo borrar archivos y directorios usando Python

Suraj Joshi 30 enero 2023
  1. Borrar archivos usando el módulo os en Python
  2. Borrar archivos usando el módulo pathlib en Python
  3. Borrar archivos con coincidencia de patrones en Python
  4. Borrar directorios usando el módulo os de Python
  5. Borrar directorios usando el módulo pathlib de Python
  6. Borrar directorios no vacíos usando el método de Python shutil.rmtree
Cómo borrar archivos y directorios usando Python

Este artículo introduce cómo borrar archivos y directorios con paquetes incorporados en Python como os, pathlib y shutil.

Borrar archivos usando el módulo os en Python

os es un paquete incorporado disponible tanto en Python 2 como en Python 3.

Podemos usar remove() y unlink() del módulo os para borrar archivos usando Python. Ambas funciones son similares en su acción. Ambas toman como argumento la ruta del archivo a eliminar.

import os

os.remove("test_dir/main.py")

Borra el archivo llamado main.py que se encuentra dentro de test_dir. Como estamos usando la ruta relativa aquí, test_dir debe estar en la misma carpeta raíz que la de nuestro programa Python. También podemos usar la ruta absoluta del archivo.

import os

os.unlink("test_dir/main.py")

También borra el fichero llamado main.py que está dentro de la test_dir.

Ambas funciones sólo pueden borrar archivos. Si damos la ruta del directorio a borrar, obtenemos el error IsADirectoryError.

De forma similar, obtenemos el error FileNotFoundError si el archivo no está presente en la ruta especificada.

Si no tenemos permiso para borrar el archivo, obtenemos el error PermissionError.

Para hacer frente a estos errores mientras se elimina el archivo, debemos utilizar el manejo de excepciones.

import os

try:
    os.remove("test_dir/main.py")
except OSError as e:
    print(f"Error:{ e.strerror}")

Resultado:

Error:No such file or directory

Si no existe tal archivo, se imprime un error en la salida en lugar de que todo el programa se bloquee.

Borrar archivos usando el módulo pathlib en Python

Para eliminar los archivos usando el módulo pathlib, primero hacemos un objeto del objeto Path definido en el módulo pathlib. Luego usamos el método unlink() para borrar el archivo.

from pathlib import Path

filePath = Path("test_dir/main.py")

try:
    filePath.unlink()
except OSError as e:
    print(f"Error:{ e.strerror}")

Aquí, instanciamos el objeto filePath de la clase Path con la ubicación del archivo a borrar.

El módulo pathlib sólo está disponible en Python 3.4 y superior. Para Python 2 necesitamos instalar el módulo usando pip.

Borrar archivos con coincidencia de patrones en Python

Podemos usar el módulo glob para hacer coincidir los patrones en los archivos y después de recoger todos los archivos que coinciden con el patrón, podemos borrarlos todos usando cualquiera de los métodos especificados anteriormente.

import os
import glob

py_files = glob.glob("test_dir/*.py")

for py_file in py_files:
    try:
        os.remove(py_file)
    except OSError as e:
        print(f"Error:{ e.strerror}")

Esto elimina todos los archivos del directorio test_dir con la extensión .py.

Borrar directorios usando el módulo os de Python

Para borrar los directorios usando Python, podemos usar los directorios os, pathlib y shutlib. os y pathlib sólo pueden borrar los directorios vacíos mientras que shutlib también puede eliminar los directorios no vacíos.

import os

dirPath = "test_dir"

try:
    os.rmdir(dirPath)
except OSError as e:
    print(f"Error:{ e.strerror}")

Borra el directorio vacío test_dir en nuestro directorio de trabajo actual.

Borrar directorios usando el módulo pathlib de Python

Si el directorio no está vacío, el directorio no puede ser eliminado con este método, obtenemos una salida del programa que dice Error: Directory not empty.

También podemos usar el módulo pathlib para eliminar los directorios no vacíos.

from pathlib import Path

dirPath = Path("test_dir")

try:
    dirPath.rmdir()
except OSError as e:
    print(f"Error:{ e.strerror}")

También borra el directorio vacío test_dir en nuestro directorio de trabajo actual.

Borrar directorios no vacíos usando el método de Python shutil.rmtree

Para borrar los directorios no vacíos usando Python, usamos el método rmtree del módulo shutil.

import shutil

dirPath = "test_dir"

try:
    shutil.rmtree(dirPath)
except OSError as e:
    print(f"Error:{ e.strerror}")

Este borra el directorio test_dir en nuestro directorio de trabajo actual y todo su contenido.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Python File

Artículo relacionado - Python Directory