En este artículo, veremos cómo eliminar archivos y carpetas de forma segura utilizando el módulo send2trash en Python. Usando send2trash , podemos enviar archivos a la Papelera o Papelera de reciclaje en lugar de eliminarlos permanentemente. Las funciones unlink() , remove() y rmdir() del módulo OS se pueden usar para eliminar archivos o carpetas. Pero, estas funciones eliminan los archivos de forma permanente. Las operaciones no se pueden deshacer si se realizaron eliminaciones accidentales. Esto se puede evitar usando send2trash .
Módulos requeridos
- OS: el módulo OS en Python proporciona funciones para interactuar con el sistema operativo. El módulo del sistema operativo viene con la biblioteca estándar de Python.
- send2trash: Send2Trash es un pequeño paquete que envía archivos a la Papelera (o Papelera de reciclaje) de forma nativa y en todas las plataformas. Para instalarlo, escriba el siguiente comando en la terminal.
pip install send2trash
Eliminación de un archivo o carpeta
La función send2trash() acepta la ubicación del archivo o carpeta que se va a eliminar.
Python3
import send2trash send2trash.send2trash("/location/to/file")
El proceso de eliminación de un directorio es el mismo que el anterior. Si el directorio contiene archivos u otras carpetas, también se eliminan. Se genera una excepción TrashPermissionError , en caso de que un archivo no se pueda eliminar debido a un error de permiso o cualquier otro motivo inesperado.
Eliminación de archivos específicos en un directorio
Podemos usar la función os.walk() para recorrer un directorio y eliminar archivos específicos. En el siguiente ejemplo, eliminaremos todos los ‘ . txt’ archivos en el directorio dado.
Python3
import os import send2trash # walking through the directory for folder, subfolders, files in os.walk('/Users/tithighosh/Documents'): for file in files: # checking if file is # of .txt type if file.endswith('.txt'): path = os.path.join(folder, file) # printing the path of the file # to be deleted print('deleted : ', path ) # deleting the file send2trash.send2trash(path)
Producción :
deleted : /Users/tithighosh/Documents/cfile.txt deleted : /Users/tithighosh/Documents/e_also_big_output.txt deleted : /Users/tithighosh/Documents/res.txt deleted : /Users/tithighosh/Documents/tk.txt
Publicación traducida automáticamente
Artículo escrito por cosine1509 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA