Acordeón de los Índices
Índice de los temas
Lección: 40 - Eliminar ficheros y carpetas en Python
🗑️ Delete a File
🗑️ Para eliminar un archivo en Python, podemos utilizar el módulo os
, que proporciona una manera de interactuar con el sistema operativo. La función específica que necesitamos es os.remove()
.
La función os.remove()
:
La función os.remove(path)
elimina el archivo especificado por la ruta (path
). Si el archivo no existe o la ruta especificada es un directorio, se generará un error (FileNotFoundError
o IsADirectoryError
, respectivamente).
Ejemplo: Eliminar un archivo:
import os
ruta_archivo = "mi_archivo_a_eliminar.txt"
try:
os.remove(ruta_archivo)
print(f"El archivo '{ruta_archivo}' ha sido eliminado exitosamente.")
except FileNotFoundError:
print(f"Error: El archivo '{ruta_archivo}' no fue encontrado.")
except IsADirectoryError:
print(f"Error: '{ruta_archivo}' es un directorio, no un archivo.")
except Exception as e:
print(f"Ocurrió un error al intentar eliminar el archivo: {e}")
En este ejemplo, primero importamos el módulo os
. Luego, definimos la ruta del archivo que queremos eliminar. Utilizamos un bloque try-except
para manejar posibles errores, como que el archivo no exista o que la ruta sea de un directorio. Si la eliminación es exitosa, se imprime un mensaje informativo.
Consideraciones importantes:
- Asegúrate de tener los permisos necesarios para eliminar el archivo en la ubicación especificada.
- La función
os.remove()
elimina el archivo de forma permanente. No lo envía a la papelera de reciclaje. - Es crucial manejar las excepciones
FileNotFoundError
eIsADirectoryError
para que tu programa no se detenga inesperadamente si el archivo no se encuentra o si intentas eliminar un directorio con esta función.
🔍 Check if File Exists
🔍 Antes de intentar eliminar un archivo, es una buena práctica verificar si realmente existe. Esto ayuda a evitar errores como FileNotFoundError
y hace que tu programa sea más robusto. El módulo os
también nos proporciona herramientas para esto. En particular, la función os.path.exists()
es muy útil.
La función os.path.exists()
:
La función os.path.exists(path)
toma una ruta como argumento y devuelve True
si el archivo o directorio especificado por la ruta existe, y False
en caso contrario.
Ejemplo: Comprobar si un archivo existe antes de eliminarlo:
import os
ruta_archivo_eliminar = "mi_archivo_a_eliminar.txt"
if os.path.exists(ruta_archivo_eliminar):
try:
os.remove(ruta_archivo_eliminar)
print(f"El archivo '{ruta_archivo_eliminar}' ha sido eliminado exitosamente.")
except Exception as e:
print(f"Ocurrió un error al intentar eliminar el archivo: {e}")
else:
print(f"El archivo '{ruta_archivo_eliminar}' no existe, no se puede eliminar.")
En este ejemplo, primero verificamos si el archivo especificado por ruta_archivo_eliminar
existe utilizando os.path.exists()
. Solo si la función devuelve True
, intentamos eliminar el archivo con os.remove()
. Si el archivo no existe, se muestra un mensaje indicando que no se puede eliminar.
Otras funciones útiles para verificar la existencia y el tipo:
os.path.isfile(path)
: DevuelveTrue
si la ruta es un archivo regular existente.os.path.isdir(path)
: DevuelveTrue
si la ruta es un directorio existente.
Estas funciones pueden ser útiles en diferentes escenarios donde necesitas distinguir entre archivos y directorios antes de realizar una operación.
📂 Delete Folder
📂 Para eliminar una carpeta (directorio) en Python, también utilizamos el módulo os
. Sin embargo, la función que necesitamos aquí es os.rmdir()
.
La función os.rmdir()
:
La función os.rmdir(path)
elimina el directorio especificado por la ruta (path
). Es importante tener en cuenta que os.rmdir()
solo puede eliminar directorios que estén vacíos. Si el directorio contiene archivos o subdirectorios, se generará un error (OSError
).
Ejemplo: Eliminar una carpeta vacía:
import os
ruta_carpeta_vacía = "mi_carpeta_vacía"
if os.path.exists(ruta_carpeta_vacía):
try:
os.rmdir(ruta_carpeta_vacía)
print(f"La carpeta '{ruta_carpeta_vacía}' ha sido eliminada exitosamente.")
except OSError:
print(f"Error: La carpeta '{ruta_carpeta_vacía}' no está vacía.")
except Exception as e:
print(f"Ocurrió un error al intentar eliminar la carpeta: {e}")
else:
print(f"Error: La carpeta '{ruta_carpeta_vacía}' no fue encontrada.")
En este ejemplo, intentamos eliminar la carpeta "mi\_carpeta\_vacía" utilizando os.rmdir()
. Primero, verificamos si la carpeta existe. Si existe y está vacía, se eliminará. Si contiene archivos o subdirectorios, se capturará la excepción OSError
y se mostrará un mensaje.
Eliminar carpetas con contenido (usando shutil.rmtree()
):
Si necesitas eliminar una carpeta que contiene archivos y subdirectorios, debes utilizar la función shutil.rmtree(path)
del módulo shutil
. Esta función elimina recursivamente el directorio y todo su contenido.
import shutil
import os
ruta_carpeta_con_contenido = "mi_carpeta_con_contenido"
if os.path.exists(ruta_carpeta_con_contenido):
try:
shutil.rmtree(ruta_carpeta_con_contenido)
print(f"La carpeta '{ruta_carpeta_con_contenido}' y su contenido han sido eliminados exitosamente.")
except Exception as e:
print(f"Ocurrió un error al intentar eliminar la carpeta y su contenido: {e}")
else:
print(f"Error: La carpeta '{ruta_carpeta_con_contenido}' no fue encontrada.")
¡Advertencia! Utiliza shutil.rmtree()
con precaución, ya que eliminará permanentemente la carpeta y todo lo que contenga. No habrá forma fácil de recuperar los archivos eliminados.
Consideraciones importantes:
- Asegúrate de tener los permisos necesarios para eliminar la carpeta.
- Ten mucho cuidado al usar
shutil.rmtree()
, especialmente si la ruta se genera dinámicamente. Siempre verifica la ruta antes de ejecutar la función. - Al igual que con la eliminación de archivos, no hay una "papelera de reciclaje" cuando se eliminan carpetas con estas funciones.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias