PermissionError:[WinError 5]访问被拒绝

时间:2016-05-22 17:03:47

标签: python python-3.x

每当我尝试使用Python 3.5.1中的os.remove()删除文件时,我收到此消息PermissionError: [WinError 5] Access is denied

这是一个简单的代码:

def clean_thrash(path):
    dirlist=get_dirlist(path)
    for f in dirlist:
        fullname=os.path.join(path,f)
        if fullname == os.path.join(path,"thrash.txt"):
            os.remove(path)
        if os.path.isdir(fullname):
            clean_thrash(fullname)

甚至没有删除目录或子目录中的单个文件。

3 个答案:

答案 0 :(得分:0)

如果您使用的是Windows,则必须是管理员用户;如果您使用的是Linux,则必须具有sudo权限。 尝试使用sudo

运行代码

请参阅此回答https://stackoverflow.com/a/32199615/6356497

答案 1 :(得分:0)

如果您使用的是Windows,则只需执行以下操作即可:

import shutil
shutil.rmtree(directory_path)

希望这行得通!

答案 2 :(得分:0)

我遇到了这个问题,在搜索中我找到了一个好的解决方案。

在声明os.remove(file_name)之前,我们需要更改权限。

第一: 进口统计

下一步:在os.remove之前写入以下内容:os.chmod(file_name,stat.S_IWRITE)

解决方案:

import os
import stat

def clean_thrash(path):
    dirlist=get_dirlist(path)
    for f in dirlist:
        fullname=os.path.join(path,f)
        if fullname == os.path.join(path,"thrash.txt"):
            os.chmod(fullname , stat.S_IWRITE)
            os.remove(fullname)
        if os.path.isdir(fullname):
            clean_thrash(fullname)

我希望这可以解决您的问题。