【发布时间】:2021-06-07 21:15:16
【问题描述】:
我尝试使用 shutil.move() 将文件集合从一个驱动器中的目录单独移动到另一个驱动器,并且它似乎在 复制 时成功第一个文件,但是在删除删除时会遇到权限错误:
PermissionError: [WinError 5] Access is denied: 'C:\\Program Files\\openPDC\\Archive\\ppa_archive_2020-03-04 15!25!29.120_to_2020-03-04 20!16!30.900.d'
我可以使用 admin privledge 手动删除文件,但我不确定如何在 Python 脚本中调用 admin privledge 以允许 shutil.move() 删除原始文件文件。我已尝试删除只读访问权限,但这似乎无济于事,有什么想法吗?
try:
os.chmod(files[i], stat.S_IWRITE )
os.unlink(files[i])
shutil.move(files[i], destination)
except PermissionError:
print ("Error: Could not move file {} from {} to {}".format(files[i], source, destination))
raise
【问题讨论】:
-
shutil可能没有此功能,您可能必须以管理员权限运行运行标准move或remove的代码 - 在 Linux 上,您可以使用sudo运行代码以执行为管理员 -os.system("sudo mv ...")。或者也许你应该以管理员身份运行所有脚本。 -
我曾尝试使用其他功能,例如
copy和remove,copy工作正常,但remove仍然会导致权限错误。我试图以管理员身份运行整个脚本,但没有任何运气。
标签: python permissions admin shutil