Borrar archivos y directorios en Python ⋆ ALexHost SRL

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills
21.01.2025

Borrar archivos y directorios en Python

En Python, trabajar con archivos y directorios es una tarea común, especialmente para aplicaciones que requieren la manipulación de archivos. Este tutorial se centra en métodos avanzados para borrar archivos y directorios utilizando varios módulos de Python, incluyendo os, shutil y pathlib. Cada uno de estos módulos proporciona una funcionalidad diferente para trabajar con el sistema de archivos, permitiéndote gestionar archivos y directorios de forma eficiente. Para descargar Python, visite el siguiente enlace de la fuente oficial python.org.

Entender los módulos

1. Módulo os

El módulo os permite utilizar funciones dependientes del sistema operativo, como la lectura o escritura en el sistema de archivos. Incluye funciones de eliminación de archivos y directorios. El uso del módulo os en un entorno de hosting VPS Linux proporciona un control efectivo sobre la gestión de archivos y otras operaciones a nivel de sistema. Este módulo permite a los desarrolladores realizar acciones como leer, escribir y borrar archivos y directorios directamente en el servidor

Características principales:

  • os.remove(ruta): Elimina la ruta a un fichero.
  • os.rmdir(ruta): Elimina (destruye) la ruta a un directorio. El directorio debe estar vacío.
  • os.unlink(ruta): Otro nombre para la función os.remove() utilizada para eliminar un archivo.

2. Módulo shutil

El módulo shutil ofrece una interfaz de alto nivel para trabajar con ficheros. Es especialmente útil para copiar y borrar directorios y archivos.

Funciones clave:

  • shutil.rmtree(ruta): Elimina recursivamente un directorio y todo su contenido, incluidos subdirectorios y archivos.
  • shutil.move(src, dst): Mueve un archivo o directorio a otra ubicación. También se puede utilizar para eliminar archivos moviéndolos a un directorio inexistente.

3. Módulo Pathlib

El módulo pathlib proporciona un enfoque orientado a objetos para trabajar con las rutas del sistema de archivos. Este módulo apareció en Python 3.4 y se considera más intuitivo y fácil de leer.

Características principales:

  • Path.unlink(): Elimina el fichero.
  • Path.rmdir(): Elimina un directorio vacío.
  • Ruta.rmtree(): Para eliminar un directorio y su contenido, shutil.rmtree() se utiliza normalmente junto con Path.

Métodos avanzados para borrar archivos y directorios

Uso del módulo os

A continuación se explica cómo utilizar el módulo os para borrar ficheros y directorios:

Opción A: Ejecutando en Python interactivo

  1. Abra una sesión interactiva de Python escribiendo:
    python3

    (Utiliza python si así es como está configurado Python en tu sistema, pero python3 suele ser el comando recomendado para Python 3.x).

  2. Copia y pega el código directamente en la sesión interactiva (script de abajo)

pájaro B: Escribir en un archivo de script Python

  1. Crea un nuevo archivo usando un editor de texto como nano:
    nano eliminar_archivo.py
  2. Copia y pega el siguiente código en el archivo (script de abajo)
  3. Ahora puedes ejecutar tu script Python desde el terminal:
    python3 eliminar_archivo.py

Eliminar un único archivo

importar os
ruta_archivo = 'ejemplo.txt'
prueba:
os.remove(ruta_archivo)
print(f'Eliminado con éxito {ruta_archivo}')
excepto FileNotFoundError:
print(f'El archivo {ruta_archivo} no existe')
except PermissionError:
print(f'Permiso denegado: no se puede eliminar {ruta_archivo}')
excepto Exception como e:
print(f'Se ha producido un error: {e}')

Salida:

Eliminación de un directorio vacío

Paso 1: Crear un directorio

En primer lugar, cree un directorio vacío llamado example_dir. Para ello, utilice el siguiente comando:

mkdir ejemplo_dir

Paso 2: Crear un script Python

Ahora necesitas crear un script Python que contendrá el código para borrar el directorio vacío. Puedes utilizar un editor de texto como nano para crear el script.

  1. Abre nano y crea un nuevo archivo Python:
    nano eliminar_directorio.py
  2. Copia y pega el siguiente código en el archivo (código de abajo)
  3. Ahora ejecuta el script Python que acabas de crear:
    python3 eliminar_directorio.py

importar os
directorio_ruta = 'ejemplo_dir'
prueba:
os.rmdir(ruta_directorio)

f'Se ha eliminado correctamente el directorio {ruta_directorio}')
excepto FileNotFoundError:
print(f'El directorio {ruta_directorio} no existe')
except OSError:
print(f'El directorio {ruta_directorio} no está vacío')
excepto Exception como e:
print(f'Se ha producido un error: {e}')

Salida:

Utilización del módulo shutil

Paso 1: Crear un directorio con el contenido

En primer lugar, cree un directorio llamado example_dir_with_content y añádale algunos archivos. Esto se puede hacer utilizando los siguientes comandos:

mkdir directorio_de_ejemplo_con_contenido
touch directorio_de_ejemplo_con_contenido/archivo1.txt
touch directorio_de_ejemplo_con_contenido/archivo2.txt

Paso 2: Crear un script Python

Ahora necesitas crear un script Python que contenga el código para borrar el directorio y su contenido. Puede utilizar un editor de texto como nano para crear el script.

  1. Abre nano y crea un nuevo archivo Python:
    nano eliminar_directorio_contenido.py
  2. Copia y pega el siguiente código en el archivo (código de abajo)
  3. Ahora ejecuta el script Python que acabas de crear:
    python3 eliminar_directorio_contenido.py

Usa shutil.rmtree() para eliminar directorios con contenido:

import shutil
'ejemplo_dir_con_contenido'
probar:
shutil.rmtree(ruta_directorio)
print(f'Eliminado con éxito el directorio {ruta_directorio} y su contenido')
except ErrorFicheroNoEncontrado:
print(f'El directorio {ruta_directorio} no existe')
except PermissionError:
print(f'Permiso denegado: no se puede eliminar {ruta_directorio}')
excepto Exception como e:
print(f'Se ha producido un error: {e}')

Salida:

Utilización del módulo pathlib

elmódulo pathlib proporciona una interfaz moderna para las rutas del sistema de archivos:

Borrar un archivo

from pathlib import Ruta
ruta_archivo = ruta('ejemplo.txt')
prueba:
ruta_archivo.unlink()
print(f'Eliminado con éxito {ruta_archivo}')
except ErrorFicheroNoEncontrado:
print(f'El fichero {ruta_fichero} no existe')
excepto PermissionError:
print(f'Permiso denegado: no se puede eliminar {ruta_archivo}')
excepto Exception como e:
print(f'Se ha producido un error: {e}')

Salida:

Borrar un directorio vacío

from pathlib import Ruta_de_directorio = Ruta('directorio_de_ejemplo'
probar:
directorio_ruta.rmdir() # Esto sólo funcionará si el directorio está vacío
print(f'Eliminado con éxito el directorio {ruta_directorio}')
except FileNotFoundError:
print(f'El directorio {ruta_directorio} no existe')
excepto OSError:
print(f'El directorio {ruta_directorio} no está vacío')
excepto Exception como e:
print(f'Se ha producido un error: {e}')

Salida:

Tratamiento de errores

Cuando se trabaja con operaciones de archivo, es muy importante manejar las excepciones con gracia para evitar que el programa se bloquee. Las excepciones más comunes son:

  • FileNotFoundError: Ocurre cuando se intenta borrar un archivo o directorio inexistente.
  • PermissionError: Se produce cuando un usuario carece de lospermisos necesarios para borrar un archivo o directorio.
  • OSError: Ocurre cuando se producen varios errores relacionados con el sistema operativo, incluido un intento de eliminar un directorio que no está vacío.

Conclusión

En este tutorial, hemos cubierto cómo usar módulos de Python como os, shutil, y pathlib para borrar archivos y directorios. Cada módulo tiene ventajas únicas, y entender cómo usarlos eficazmente ampliará tu capacidad para gestionar sistemas de archivos en tus aplicaciones. Dominando estas técnicas, serás capaz de automatizar tareas de gestión de archivos, trabajar con archivos de forma más intuitiva y escribir scripts robustos que interactúen con el sistema de archivos.

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills