前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python标准库shutil中rmtree()使用回调函数

Python标准库shutil中rmtree()使用回调函数

作者头像
Python小屋屋主
发布于 2018-04-16 06:25:32
发布于 2018-04-16 06:25:32
1.9K0
举报
文章被收录于专栏:Python小屋Python小屋

这段代码目的是删除包含只读文件的文件夹,主要演示回调函数的用法。

>>> import os

>>> import stat

>>> import shutil

>>> def remove_readonly(func, path, _): #定义回调函数

os.chmod(path, stat.S_IWRITE) #删除文件的只读属性

func(path) #再次执行删除操作

>>> shutil.rmtree('D:\\des_test') #文件夹中有个只读文件,删除失败

Traceback (most recent call last):

File "<pyshell#21>", line 1, in <module>

shutil.rmtree('D:\\des_test')

File "C:\Python35\lib\shutil.py", line 488, in rmtree

return _rmtree_unsafe(path, onerror)

File "C:\Python35\lib\shutil.py", line 383, in _rmtree_unsafe

onerror(os.unlink, fullname, sys.exc_info())

File "C:\Python35\lib\shutil.py", line 381, in _rmtree_unsafe

os.unlink(fullname)

PermissionError: [WinError 5] 拒绝访问。: 'D:\\des_test\\test1.txt'

>>> shutil.rmtree('D:\\des_test', onerror=remove_readonly) #指定回调函数,删除成功

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python移除/删除非空文件夹/目录的最有效方法是什么?
根据设计,rmtree在包含只读文件的文件夹树上失败。如果要删除文件夹,不管它是否包含只读文件,请使用
Python学习者
2024/05/09
3160
import statsmodels.api as sm 时 ImportError: DLL load failed while importing _arpack: 找不到指定的程序。
解决过程曲折,大致就是 scipy 版本与 statsmodels 的有些方法 不兼容,scipy==1.6.0后,问题解决了:
叶庭云
2022/05/09
1.7K0
import statsmodels.api as sm 时 ImportError: DLL load failed while importing _arpack: 找不到指定的程序。
回调函数原理与Python实现
回调函数的定义与普通函数并没有本质的区别,但一般不直接调用,而是作为参数传递给另一个函数,当另一个函数中触发了某个事件、满足了某个条件时就会自动调用回调函数。下面的代码用来删除可能会包含只读属性文件的文件夹,主要演示回调函数的原理和用法。 import os import stat def remove_readonly(func, path): #定义回调函数 os.chmod(path, stat.S_IWRITE) #删除文件的只读属性
Python小屋屋主
2018/04/16
1.7K0
Python 之 shutil模块
copy2(src, dst):连同权限一起复制,相当于cp -p src dst
py3study
2020/01/08
5490
python 的路径操作
os.sep 表示默认的文件路径分隔符,windows为\, linux为/ os.walk(spath): 用来遍历目录下的文件和子目录 os.listdir(dirname):列出dirname下的目录和文件 os.mkdir() : 创建目录 os.makedirs(): 创建目录,包含中间级目录 os.remove():删除文件,不能是目录 os.rmdir():删除空目录 os.removedirs(path):删除目录及其子目录 os.rename(src, dst) :修改文件名 os.renames(old, new) :修改文件或目录名,包含中间级
py3study
2020/01/10
1.8K0
python模块之shutil
shutil模块提供了一些针对文件和目录的高级操作,主要是拷贝、移动。对于单个文件的操作,还可参考os模块
py3study
2020/01/06
1.2K0
python中shutil和shutil库的用法
Python shutil库提供了对文件和目录复制、移动、删除、压缩、解压等操作。
Python学习者
2023/04/18
8730
文件和目录操作(一)、shutil模块
os模块不仅提供了新建文件、删除文件、查看文件属性的操作功能,还提供了对文件路径的操作功能。但是,对于移动、复制、打包、压缩、解压文件及文件夹等操作,os模块没有提供相关的函数,此时需要用到shutil模块。shutil模块是对os模块中文件操作的补充,是Python自带的关于文件、文件夹、压缩文件的高层次的操作工具,类似于高级API。
狼啸风云
2019/10/22
3.8K0
python内置模块~shutil
--High-level file operations,高级的文件操作模块~ shutil 模块的使用主要包括对文件及目录的移动、复制、打包、压缩(解压)、删除等操作。是对os模块的一个补充~
py3study
2020/01/13
6730
Python 模版(二)
拷贝状态的信息,包括:mode bits, atime, mtime, flags
py3study
2020/01/14
1.6K0
Python 删除文件 - 分步指南
该os 模块是 Python 2 和 3 版本中都可用的内置实用程序,它提供了与操作系统轻松交互的功能。
玖柒的小窝
2021/09/14
1.8K0
【Python让生活更美好01】os与shutil模块的常用方法总结
Python作为一种解释型的高级语言,脚本语言,又被称作“胶水语言”,就是因为其灵活的语法和其依靠浩如烟海的第三方包实现的丰富多彩的功能,而os和shutil就是这样一种功能强大的模块,可以非常快捷地帮助使用者解决日常计算机文件相关操作的一些问题,下面就对os和shutil包中一些常见的命令进行说明: import os,shutil os.getcwd()#获取当前工作目录 os.chdir('newdir')#改变当前工作目录 os.mkdir('test')#在当前工作目录下生成单级文件夹 o
Feffery
2018/04/17
7592
如何在Python中删除(删除)文件和目录
本教程说明了如何使用os,pathlib和shutil模块中的功能删除文件和目录。
用户5005176
2021/08/10
13.6K0
python模块之os
os.path.getctime()返回文件创返回文件大小 字节单位建时间 浮点型os.path.getsize()
菲宇
2019/06/13
9600
Python3目录操作
输出: 'D:\python\jupyter' 'D:\python' ['.ipynb_checkpoints', 'bak', 'jupyter', 'project', 'test.txt', 'testdir', 'Untitled.ipynb', ]
py3study
2020/01/03
7860
Python各种文件删除函数的功能区分!
在Python中对文件或者文件夹进行删除的操作方法有很多种,但每一种方法都有其特有的功能和特点。
灰小猿
2020/09/23
1.4K0
Python各种文件删除函数的功能区分!
【十】python基础之文件处理
给要打开的文件对象指定一个名字,这样可在完成操作之后迅速关闭文件,防止一些无用的文件对象占用内存
菲宇
2019/06/13
6940
【十】python基础之文件处理
python3基础:目录操作
os模块提供了统一的操作系统接口函数,python中对文件和文件夹的操作都要涉及到os和shutil模块,在使用前需要使用import引入,例如;
py3study
2020/01/09
1.3K0
python 删除文件、清空目录的方法总
os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。
py3study
2020/01/03
12K0
python shutil模块
和copyfileobj是类似的功能,不同的是,copyfile不需要打开文件,底层做好了。
py3study
2018/08/02
5030
相关推荐
python移除/删除非空文件夹/目录的最有效方法是什么?
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档