如何使用 send2trash 模块在Python中删除文件?
在本文中,我们将了解如何使用Python中的send2trash模块安全地删除文件和文件夹。使用send2trash ,我们可以将文件发送到垃圾箱或回收站,而不是永久删除它们。 OS 模块的 unlink()、remove() 和 rmdir() 函数可用于删除文件或文件夹。但是,这些功能会永久删除文件。如果执行了任何意外删除,则无法撤消操作。这可以使用send2trash来防止。
所需模块
- OS : Python中的 OS 模块提供了与操作系统交互的功能。 OS 模块带有 Python 的标准库。
- send2trash : Send2Trash 是一个小程序包,可在所有平台上本地将文件发送到垃圾箱(或回收站)。要安装它,请在终端中键入以下命令。
pip install send2trash
删除文件或文件夹
send2trash()函数接受要删除的文件或文件夹的位置。
Python3
import send2trash
send2trash.send2trash("/location/to/file")
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)
删除目录的过程同上。如果目录包含文件或其他文件夹,这些也会被删除。如果由于权限错误或任何其他意外原因而无法删除文件,则会引发TrashPermissionError异常。
删除目录中的特定文件
我们可以使用 os.walk()函数遍历目录并删除特定文件。在下面的示例中,我们将删除所有 ' 。 txt'文件在给定目录中。
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)
输出 :
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