【问题标题】:PermissionError: [WinError 5] Access is denied encountered while running in pythonPermissionError: [WinError 5] 在 python 中运行时遇到访问被拒绝
【发布时间】:2023-03-27 23:03:01
【问题描述】:
import glob
import os
import shutil




for name in os.listdir('C:/Users/Ajay/Downloads'):
    if name.endswith('.xlsx') or name.endswith('.csv'):
        os.rename('C:/Users/Ajay/Downloads', 'C:/Users/Ajay/Projects/GFD')
        print(name)





Traceback (most recent call last):
  File "C:\Users\Ajay\Projects\Desktop\automation.py", line 33, in <module>
    os.rename('C:/Users/Ajay/Downloads', 'C:/Users/Ajay/Projects/GFD')
PermissionError: [WinError 5] Access is denied: 'C:/Users/Ajay/Downloads' -> 'C:/Users/Ajay/Projects/GFD'

我曾尝试使用 shutil.move,但我的权限被拒绝。作为管理员,我拥有对目录的所有访问权限,不知道为什么问题仍然出现。

【问题讨论】:

  • 您是要重命名目录还是重命名目录中的文件?
  • 我只是想把它们从下载的目录移到另一个目录
  • 您的代码正在尝试重命名目录本身。您应该将name 合并到os.rename() 调用中。
  • Ajay 用户已不存在,是 Steve(我自己的)。我试图通过 cmd 移动文件,它工作得很好

标签: python operating-system shutil


【解决方案1】:

该代码不会移动任何文件,而是每次都尝试重命名目录。正如您所指出的,您可以使用 shutil.move() 方法来做您想做的事情。

这两个操作的错误是相同的,因此尽管您可能有足够的权限,但您可能是在非特权环境中执行应用程序。如果您是系统管理员,通常可以通过以管理员身份运行程序来解决此问题:

右键,以管理员身份运行(直接在python可执行文件上)

搜索CMD,右键,以管理员身份运行,执行python(应用名)

【讨论】:

    最近更新 更多