【问题标题】:OS permissions causing issue with removing files in Pycharm操作系统权限导致在 Pycharm 中删除文件时出现问题
【发布时间】:2022-01-18 00:23:11
【问题描述】:

在我公司的笔记本电脑(运行 Windows 10)上,我正在使用 PyCharm 开发一些脚本,其中我使用 os 模块来创建和删除目录。但是,每当我调用删除旧文件副本的函数时,都会出现权限错误:

PermissionError: [WinError 5] Access is denied: 'C:\\\\Users\\\\User\\\\PycharmProjects\\\\Project

我已将问题范围缩小到我的公司设置了不允许其他人删除子文件夹和文件的权限:

我无法编辑此权限。我可以添加新权限。

我已经尝试以管理员身份运行 PyCharm,看看这是否会允许在 PyCharm 中运行的 python 脚本绕过上述设置并删除文件,但这似乎失败了。

有什么方法可以让我在 PyCharm 中运行一个 python 脚本来绕过这些权限?我相信如果我要下载我的整个项目并在 Powershell 或 CMD 中执行脚本(以管理员身份运行),我将能够做我想做的事情,但我目前正在使用 venv 并且宁愿不必须将我所有的包依赖项加载到我的机器上。

【问题讨论】:

  • C:\\\\Users\\\\User\\\\PycharmProjects\\\\Project 反斜杠太多了。你是如何构建这个路径名的?
  • 哦,这只是 PyCharm 在错误日志中吐出的路径。实际路径是正确的并且运行良好。不确定为什么错误日志会给出该输出
  • 这不是 PyCharm 的东西,而是 Windows 的东西 - 您不能只更改任何位置的文件,并且用户文件夹只能由这些用户自己或适当的管理员更改。如果您的脚本或 PyCharm 有某种方法可以绕过这些限制,那么它们将毫无意义。你的用例是什么?为什么脚本需要在那里改变一些东西——在什么权限上?如果您有正当理由更改那里的文件,也许您的脚本需要以具有适当权限的用户身份运行。
  • @Grismar 我正在使用一些网络服务来记录来自另一台服务器的数据,然后我将这些数据处理成一些摘要文件。只有最新的数据集对我很重要,所以我删除了所有先前请求的数据,然后发出 Web 服务请求以创建一组新的摘要文件。我想我可以尝试只覆盖预先存在的数据,但是我可能会留下一些未更新的文件,因此无用,因为它们基于过时的数据

标签: python windows pycharm admin


【解决方案1】:

我目前的解决方法虽然粗略,但是将每个文件的文件路径更改为回收站。然后在运行我的脚本时,新文件将简单地填充现在的空文件夹。为此,我导入了 send2trash 模块。

pip install send2trash

from send2trash import send2trash

send2trash('C:\\path\\to\\your\\file')

我还没有测试过任何以编程方式清空回收站的命令(我会小心删除那里的内容,以防错误地将重要的东西放在那里),但现在这有点处理我需要的东西。理想情况下,我希望能够删除特定文件。

【讨论】:

    猜你喜欢
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多