使用 python os.rmdir 时,出现 PermissionError: [WinError 5] Access is returned

问题描述 投票:0回答:6

我正在构建一个文件传输脚本,源清理功能使用

os.rmdir('C:\\Users\\Grav\\Desktop\\TestDir0\\Om')
。这是我得到的错误:

PermissionError: [WinError 5] Access is denied: 'C:\\Users\\Grav\\Desktop\\TestDir0\\Om'

我通过 Windows 7 检查了文件夹

Om
的权限,它们被设置为允许删除我的用户帐户。我还尝试将我的解释器设置为以管理员身份运行。问题仍然存在,我陷入困境。非常感谢有识之士!

python python-2.7 file-permissions
6个回答
22
投票

我有同样的问题,可以通过

shutil
模块来完成。

import shutil
shutil.rmtree('/path/to/your/dir/')

13
投票

取消选中文件/文件夹属性中的只读属性框。 enter image description here


10
投票

我在这里找到了解决方案:Python脚本像在Windows中一样运行在什么用户下?

问题文件夹似乎具有顽固的只读属性。添加处理程序来更改此类只读标志对我来说就像一个魅力。

所有提出建议的人,帮助我找到了最终答案,所以谢谢你们!


9
投票

删除目录之前尝试删除目录中的所有文件:

import os
path_to_dir  = 'C:\\Users\\Desktop\\temp'  # path to directory you wish to remove
files_in_dir = os.listdir(path_to_dir)     # get list of files in the directory

for file in files_in_dir:                  # loop to delete each file in folder
    os.remove(f'{path_to_dir}/{file}')     # delete file

os.rmdir(path_to_dir)                      # delete folder

2
投票

您可以检查一下是否:

  1. 您不在目录
    0m
    中并从那里运行脚本。
  2. 您没有打开任何列出
    0m
    目录的窗口。
  3. 由于
    0m
    TestDir0
    的子目录,因此您拥有
    TestDir0
  4. 的正确权限

0
投票

我在 shutil 模块中遇到了同样的问题,但通过从 Windows 快速访问浏览器中删除父文件夹解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.