📜  如何使用 send2trash 模块在Python中删除文件?

📅  最后修改于: 2022-05-13 01:55:44.025000             🧑  作者: Mango

如何使用 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