移动文件到回收站
Moving file to Recycle Bin
我正在尝试使用 shutil 库将文件移动到回收站。以下是相关的代码行,但我遇到了一个奇怪的错误。这两个文件都是本地文件,我可以在我的 PC 上访问这两个位置。为什么会出现这个错误?因为我运行Main.py它来自F:?
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)
权限错误:[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 模块。您可以从 PyPi 获取它:https://pypi.org/project/Send2Trash/
要将某些东西发送到回收站,使用起来要容易得多 send2trash
。它是跨平台的,非常容易使用。
你可以安装它:
pip install Send2Trash
那你就可以用了:
from send2trash import send2trash
send2trash(filename)
我正在使用 Windows 10,而 send2trash
只接受带反斜杠的路径 \
。当您尝试传递带有正斜杠 /
.
的目录时,它会抛出 OSError: [WinError xxxxxxxxxx] The parameter is incorrect
此代码应将 /
替换为 \
,并修复错误:
path_to_delete = path_to_delete.replace("/", "\")
send2trash(path_to_delete)
我正在尝试使用 shutil 库将文件移动到回收站。以下是相关的代码行,但我遇到了一个奇怪的错误。这两个文件都是本地文件,我可以在我的 PC 上访问这两个位置。为什么会出现这个错误?因为我运行Main.py它来自F:?
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) 权限错误:[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 模块。您可以从 PyPi 获取它:https://pypi.org/project/Send2Trash/
要将某些东西发送到回收站,使用起来要容易得多 send2trash
。它是跨平台的,非常容易使用。
你可以安装它:
pip install Send2Trash
那你就可以用了:
from send2trash import send2trash
send2trash(filename)
我正在使用 Windows 10,而 send2trash
只接受带反斜杠的路径 \
。当您尝试传递带有正斜杠 /
.
OSError: [WinError xxxxxxxxxx] The parameter is incorrect
此代码应将 /
替换为 \
,并修复错误:
path_to_delete = path_to_delete.replace("/", "\")
send2trash(path_to_delete)