博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shutil.rmtree()
阅读量:4970 次
发布时间:2019-06-12

本文共 2659 字,大约阅读时间需要 8 分钟。

shutil.rmtree(path, ignore_errors=False, οnerrοr=None)   #递归地删除文件

def rmtree(path, ignore_errors=False, οnerrοr=None):    """Recursively delete a directory tree.    If ignore_errors is set, errors are ignored; otherwise, if onerror    is set, it is called to handle the error with arguments (func,    path, exc_info) where func is platform and implementation dependent;    path is the argument to that function that caused it to fail; and    exc_info is a tuple returned by sys.exc_info().  If ignore_errors    is false and onerror is None, an exception is raised.    """    if ignore_errors:        def onerror(*args):            pass    elif onerror is None:        def onerror(*args):            raise    if _use_fd_functions:        # While the unsafe rmtree works fine on bytes, the fd based does not.        if isinstance(path, bytes):            path = os.fsdecode(path)        # Note: To guard against symlink races, we use the standard        # lstat()/open()/fstat() trick.        try:            orig_st = os.lstat(path)        except Exception:            onerror(os.lstat, path, sys.exc_info())            return        try:            fd = os.open(path, os.O_RDONLY)        except Exception:            onerror(os.lstat, path, sys.exc_info())            return        try:            if os.path.samestat(orig_st, os.fstat(fd)):                _rmtree_safe_fd(fd, path, onerror)                try:                    os.rmdir(path)                except OSError:                    onerror(os.rmdir, path, sys.exc_info())            else:                try:                    # symlinks to directories are forbidden, see bug #1669                    raise OSError("Cannot call rmtree on a symbolic link")                except OSError:                    onerror(os.path.islink, path, sys.exc_info())        finally:            os.close(fd)    else:        return _rmtree_unsafe(path, onerror)# Allow introspection of whether or not the hardening against symlink# attacks is supported on the current platformrmtree.avoids_symlink_attacks = _use_fd_functions

shutil 其他模块

shutil.copyfile( src, dst) #从源src复制到dst中去。 如果当前的dst已存在的话就会被覆盖掉

shutil.move( src, dst) #移动文件或重命名
shutil.copymode( src, dst) #只是会复制其权限其他的东西是不会被复制的
shutil.copystat( src, dst) #复制权限、最后访问时间、最后修改时间
shutil.copy( src, dst) #复制一个文件到一个文件或一个目录
shutil.copy2( src, dst) #在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西
shutil.copy2( src, dst) #如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作
shutil.copytree( olddir, newdir, True/Flase) #把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接

 

 

转载于:https://www.cnblogs.com/giotto95827/p/9006348.html

你可能感兴趣的文章
纵越6省1市-重新启动
查看>>
hive安装以及hive on spark
查看>>
勇者无畏
查看>>
12864点阵液晶显示模块的原理和实例程序(HJ12864M-1)
查看>>
jz1074 【基础】寻找2的幂
查看>>
Wannafly模拟赛5 A 思维 D 暴力
查看>>
C#控制台程序实现鼠标左右手习惯切换
查看>>
C++ 继承、函数重载
查看>>
Javascript获取select下拉框选中的的值
查看>>
并发编程注意的问题
查看>>
angular--ngResource的简单使用
查看>>
android本地数据库,微信数据库WCDB for Android 使用实例
查看>>
如何快速三个月成为一个领域的高手的四个方法
查看>>
[51nod]1347 旋转字符串
查看>>
SpringBoot2.0 + SpringCloud Eureka搭建高可用注册中心(Eureka之三)
查看>>
tomcat文件夹与文件解析
查看>>
【Linux开发】CCS远程调试ARM,AM4378
查看>>
springmvc常用注解标签详解
查看>>
Linux之ssh服务介绍
查看>>
Sql语句里的递归查询(转)
查看>>