【问题标题】:How to delete file with admin privledges using Python如何使用 Python 删除具有管理员权限的文件
【发布时间】: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 可能没有此功能,您可能必须以管理员权限运行运行标准 moveremove 的代码 - 在 Linux 上,您可以使用 sudo 运行代码以执行为管理员 - os.system("sudo mv ...")。或者也许你应该以管理员身份运行所有脚本。
  • 我曾尝试使用其他功能,例如copyremovecopy 工作正常,但remove 仍然会导致权限错误。我试图以管理员身份运行整个脚本,但没有任何运气。

标签: python permissions admin shutil


【解决方案1】:

为了解决这个问题,我发现最简单的方法是进入原始目录Properties -> Security -> Edit,然后选择我的用户组并允许完全控制目录中的文件。

之后移动文件就没有问题了。

【讨论】:

    猜你喜欢
    • 2021-06-27
    • 2011-11-29
    • 1970-01-01
    • 2016-01-11
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    相关资源
    最近更新 更多