Cómo borrar archivos y directorios usando Python
-
Borrar archivos usando el módulo
os
en Python -
Borrar archivos usando el módulo
pathlib
en Python - Borrar archivos con coincidencia de patrones en Python
-
Borrar directorios usando el módulo
os
de Python -
Borrar directorios usando el módulo
pathlib
de Python -
Borrar directorios no vacíos usando el método de Python
shutil.rmtree
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 is a backend software engineer at Matrice.ai.
LinkedInArtículo relacionado - Python File
- Cómo obtener todos los archivos de un directorio
- Cómo añadir texto a un archivo en Python
- Cómo comprobar si un archivo existe en Python
- Cómo encontrar archivos con una cierta extensión sólo en Python
- Cómo leer líneas específicas de un archivo en Python
- Bloquear un archivo en Python
Artículo relacionado - Python Directory
- Python Obtener directorio de inicio
- Listar todos los archivos en directorio y subdirectorios en Python
- Solucione el error No Such File in Directory en Python
- Obtener el directorio de la ruta en Python
- Cuente la cantidad de archivos en un directorio en Python
- Ejecute un comando en cada archivo en una carpeta en Python