将文件移至回收站

问题描述

我正在尝试使用 shutil 库将文件移动到回收站。以下是相关的代码行,但我得到了一个奇怪的错误。这两个文件都是本地文件,我可以在我的 PC 上访问这两个位置。为什么会出现这个错误?因为我从 F:?

运行 Main.py
import shutil
# Path to folder where files should be trashed
dump_folder = r"C:\$Recycle.Bin\\"
file_name = "C:\\Storage\\\\statuti.docx"

# Move it to storage directory
shutil.move(file_name,dump_folder)

错误信息

F:\Python\Project\venv\Scripts\python.exe "C:\Program Files\JetBrains\PyCharm Community Edition 2020.1\plugins\python-ce\helpers\pydev\pydevd.py" --multiproc -- qt-support=auto --client 127.0.0.1 --port 54648 --file F:\Python\Main.py 连接到 pydev 调试器(内部版本 203.5981.165) 回溯(最近一次调用最后一次): 文件“C:\Users\User\AppData\Local\Programs\Python\python38\lib\shutil.py”,第 788 行,移动中 os.rename(src,real_dst) PermissionError: [WinError 5] 访问被拒绝: 'C:\Storage\\statuti.docx' -> 'C:\Recycle.Bin\\'

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用最后一次): 复制文件中的文件“C:\Users\User\AppData\Local\Programs\Python\python38\lib\shutil.py”,第 261 行 使用 open(src,'rb') 作为 fsrc,open(dst,'wb') 作为 fdst: OSError: [Errno 22] 无效参数: 'C:\Recycle.Bin\\'

解决方法

要将某些内容发送到回收站,使用 send2trash 会容易得多。它是跨平台的,非常易于使用。

您可以使用以下命令安装它:

pip install Send2Trash

然后你可以使用它:

from send2trash import send2trash
send2trash(filename)