问题描述: 在使用该函数的时候,程序出弹出“PermissionError: [WinError 5] 拒绝访问。”,从字面意思来看,是权限问题,不允许进行文件的删除。
原来代码如下:


def clear_folder(path):"""clear specified folder:param path: the path where need to clear.:return:"""if os.path.exists(path):shutil.rmtree(path)time.sleep(1)os.mkdir(path)

解决方案: 在path目录下的部分文件或目录是只读的,从而会导致该操作失败,需要在操作出错的时候,将文件或文件夹的状态修改为支持写的模式。这里需要使用shutil.rmtree的onerror这个参数,这里需要实现文件权限修改的回调函数,通过onerror带入。

修改后代码如下:

def clear_folder(path):"""clear specified folder:param path: the path where need to clear.:return:"""if os.path.exists(path):shutil.rmtree(path, onerror=readonly_handler)time.sleep(1)os.mkdir(path)def readonly_handler(func, path, execinfo):os.chmod(path, stat.S_IWRITE)func(path)

如果按照上述修改还有拒绝访问的情况,可以尝试右键python.exe,选择“兼容性”标签页,在特权等级框里面将“以管理员身份运行此程序”进行勾选。

转载于:https://my.oschina.net/hechunc/blog/3078597

解决使用shutil.rmtree无法删除文件夹的方案相关推荐

  1. python os.removedirs() 和shutil.rmtree()(os.removedirs用于删除非空文件夹和子文件夹、shutil.rmtree用于删除文件夹下所有文件夹和文件)

    文章目录 shutil.rmtree() os.removedirs() shutil.rmtree() shutil.rmtree() 表示递归删除文件夹下的所有子文件夹和子文件. def rmtr ...

  2. ldslite是什么启动项_电脑删除文件夹时提示“已在另一个程序中打开”的解决办法...

    我们在使用电脑删除某个文件夹,特别是一些程序卸载后的残留文件夹时,可能会出现"操作无法完成,因为其中的文件夹或文件已在另一个程序中打开"的弹窗提示.有些是可以在任务管理器中关闭某个 ...

  3. linux删除文件夹提示没找到,Win10中遇到删除文件夹提示找不到该项目的解决过程...

    今天删一文件夹,结果提示找不到该项目,百度找到的解决方法如下: 方法一:rd /s /q 被删除文件夹路径 方法二:360文件粉碎器 经测试以上方法全部无效,又试了下面的方法 方法一:下载powert ...

  4. 删除文件夹遇到的 错误ox80070091:目录不是空的错误解决

    今天遇到的一个删除文件夹的错误: 怎么也删除不了! 上网搜索之后根据网友的步凑也没有奏效: 具体的操作就是在你要删除的文件夹的同一目录下面创建一个text文件,里面的内容格式如图: 迅雷下载就是你想要 ...

  5. 删除文件夹时,报错“错误ox80070091:目录不是空的”,该如何解决?

    目录 问题描述: 问题解决: 问题描述: 在删除文件夹时,一直报错"错误ox80070091:目录不是空的", 如下图.文件夹一直删除不了. 问题解决: 网上百度了很多种方法,按照 ...

  6. 解决非系统盘出现Program Files文件夹以及Program Files下的ModifiableWindowsApps文件夹无法删除的问题。

    说明:本人已在知乎发布此篇文章,知乎域名为zhihu.com/people/mufanzh,其他论坛均未发表. 起因   今天突然发现,D盘出现Program Files文件夹,且含有一个空文件夹M ...

  7. 无法删除文件夹的解决办法

    一.常规解决办法 1.注消或重启电脑,然后再试着删除. 2.进入"安全模式删除". 3.在纯DOS命令行下使用DEL.DELTREE和RD命令将其删除. 4.如果是文件夹中有比较多 ...

  8. 无法删除文件夹,目录不是空的或U盘文件无法删除的解决办法

    "无法删除文件夹,目录不是空的"或U盘文件无法删除的解决办法 近日,我在使用U盘时,看到一个已不再使用的文件夹,想删除之. 却出现如下提示: "无法删除文件夹 目录不是空 ...

  9. 解决:删除文件夹提示指定的文件名无效或太长,无法删除

    解决:删除文件夹提示指定的文件名无效或太长,无法删除 目标问题 解决方法 目标问题 在Windows系统删除一个含有大量文件的文件夹时(例如组件库),右键删除会提示指定的文件名无效或太长,无法删除. ...

  10. Win11无法删除文件夹怎么办?Win11无法删除文件夹的解决方法

    ​虽然Win11系统已经推出很长一段时间了,但很多小伙伴在使用的过程中还是会遇到各种问题,例如在删除文件夹的时候会出现发无法删除的情况,那么遇到这种情况应该怎么办呢?下面就和小编一起来看看有什么解决方 ...

最新文章

  1. pandas使用pd.MultiIndex.from_product函数和pd.MultiIndex.from_tuples函数创建复合索引dataframe数据实战
  2. 对一致性Hash算法,Java代码实现的深入研究
  3. time时间格式输出转换
  4. [leetcode Summary] BFS
  5. linux网络编程之用socket实现简单客户端和服务端的通信(基于UDP)
  6. 3层vni vxlan_方便业务迁移,大型企业数据中心VXLAN大二层基础,一分钟了解下
  7. Enterprise Blocks
  8. font-familly:' 阿里巴巴-普惠体 '【永久免费 】 - 下载与使用
  9. Spanner如何实现事务?
  10. java gui界面设计,2022最新
  11. matlab中matconvnet,matlabR2016中配置matconvnet编译时出错
  12. 如何用计算机克数和斤换算,克换算斤计算器(克转两计算器)
  13. 腾讯校园招聘--一面(技术1对1)面经
  14. 最后采用加权求和的方式得到样本的_一种婴幼儿视力自动检测方法与流程
  15. 《西部世界》会成真吗? 人类如何避免被机器人干掉的未来?
  16. linux服务器开机管理,中标麒麟Linux服务器操作系统启动管理(29页)-原创力文档...
  17. Visual C++ 2010如何解决程序运行闪退问题
  18. 计算机设备预计净残值,电子设备折旧年限及残值率
  19. Java生成两个圆判断是否重叠,用java随机画出两个圆,判断它们是不是相交
  20. BLE蓝牙的广播类型

热门文章

  1. Temporal Abstraction
  2. python写剧情文字游戏_零基础学Python——制作简单文字游戏
  3. OT网络安全-OT客户端安全防护要采取那些措施
  4. 企业微信PC版多开软件,测试win10有效
  5. Android Title标题栏的修改(隐藏,菜单)
  6. onkeyup事件只能输入数字,字母,下划线等
  7. SDIO wifi Marvell8801/Marvell88w8801 介绍(二) ---- SDIO协议介绍
  8. 光纤猫上的LOS灯红色闪烁解决方法
  9. 设计模式(九)——代理模式(Proxy)
  10. Linux环境批量下载阿里云盘资源