关闭il.rmtree以删除只读文件

2024-04-29 06:59:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Python中使用shutil.rmtree来删除目录。该目录包含一个.git控制目录,git将其标记为只读并隐藏。

只读标志导致rmtree失败。在Powershell中,我会执行“del-force”来强制删除只读标志。在Python中有等价物吗?我真的不想遍历整棵树两次,但是rmtree的onerror参数似乎没有重试该操作,所以我不能使用

def set_rw(operation, name, exc):
    os.chmod(name, stat.S_IWRITE)

shutil.rmtree('path', onerror=set_rw)

Tags: name标记git目录参数标志rwdel
1条回答
网友
1楼 · 发布于 2024-04-29 06:59:13

经过进一步调查,以下措施似乎奏效:

def del_rw(action, name, exc):
    os.chmod(name, stat.S_IWRITE)
    os.remove(name)
shutil.rmtree(path, onerror=del_rw)

换句话说,实际删除onerror函数中的文件。(您可能需要检查onerror处理程序中的目录,并在这种情况下使用rmdir——我不需要这样做,但这可能只是我的问题的一些特定内容。

相关问题 更多 >