El módulo Shutil en Python proporciona muchas funciones de operaciones de alto nivel en archivos y colecciones de archivos. Viene bajo los módulos de utilidad estándar de Python. Este módulo ayuda a automatizar el proceso de copia y eliminación de archivos y directorios.
shutil.rmtree() se usa para eliminar un árbol de directorios completo, la ruta debe apuntar a un directorio (pero no un enlace simbólico a un directorio).
Sintaxis: shutil.rmtree(ruta, ignore_errors=False, onerror=Ninguno)
Parámetros:
ruta: Un objeto similar a una ruta que representa una ruta de archivo. Un objeto similar a una ruta es una string o un objeto de bytes que representa una ruta.
ignore_errors: si ignore_errors es verdadero, se ignorarán los errores resultantes de eliminaciones fallidas.
oneerror: si ignore_errors es falso o se omite, dichos errores se manejan llamando a un controlador especificado por onerror.
Ejemplo 1: suponga que el directorio y los subdirectorios son los siguientes.
# Directorio de padres:
# Directorio dentro del directorio principal:
# Archivo dentro del subdirectorio:
Queremos eliminar el directorio Autores. A continuación se muestra la implementación.
Python3
# Python program to demonstrate # shutil.rmtree() import shutil import os # location location = "D:/Pycharm projects/GeeksforGeeks/" # directory dir = "Authors" # path path = os.path.join(location, dir) # removing directory shutil.rmtree(path)
Producción:
Ejemplo 2: Pasando ignore_errors = False.
Python3
# Python program to demonstrate # shutil.rmtree() import shutil import os # location location = "D:/Pycharm projects/GeeksforGeeks/" # directory dir = "Authors" # path path = os.path.join(location, dir) # removing directory shutil.rmtree(path, ignore_errors = False) # making ignore_errors = True will not raise # a FileNotFoundError
Producción:
Rastreo (última llamada más reciente):
Archivo “D:/Pycharm projects/gfg/gfg.py”, línea 16, en
shutil.rmtree(ruta, ignore_errors=False)
Archivo “C:\Users\Nikhil Aggarwal\AppData\Local \Programs\Python\Python38-32\lib\shutil.py”, línea 730, en rmtree
return _rmtree_unsafe(path, onerror)
File “C:\Users\Nikhil Aggarwal\AppData\Local\Programs\Python\Python38-32\ lib\shutil.py”, línea 589, en _rmtree_unsafe
onerror(os.scandir, path, sys.exc_info())
Archivo “C:\Users\Nikhil Aggarwal\AppData\Local\Programs\Python\Python38-32\lib\ shutil.py”, línea 586, en _rmtree_unsafe
con os.scandir(ruta) como scandir_it:
FileNotFoundError: [WinError 3] El sistema no puede encontrar la ruta especificada: ‘D:/Pycharm projects/GeeksforGeeks/Authors’
Ejemplo 3: Al pasar onerror.
En caso de error, se debe pasar una función que debe contener tres parámetros.
- función: función que generó la excepción.
- ruta: se pasó el nombre de la ruta que generó la excepción durante la eliminación
- excinfo: información de excepción planteada por sys.exc_info()
A continuación se muestra la implementación.
Python3
# Python program to demonstrate # shutil.rmtree() import shutil import os # exception handler def handler(func, path, exc_info): print("Inside handler") print(exc_info) # location location = "D:/Pycharm projects/GeeksforGeeks/" # directory dir = "Authors" # path path = os.path.join(location, dir) # removing directory shutil.rmtree(path, onerror = handler)
Producción:
Controlador interno (, FileNotFoundError
(2, ‘El sistema no puede encontrar la ruta especificada’), ) Controlador interno (,
FileNotFoundError
(2, ‘El sistema no puede encontrar el archivo especificado’), )
Publicación traducida automáticamente
Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA