zoukankan      html  css  js  c++  java
  • python笔记68 os.remove()和shutil.rmtree()删除文件夹 上海

    前言

    使用os.remove()删除文件夹的时候出现PermissionError: [WinError 5] 拒绝访问
    shutil.rmtree()递归删除一个目录以及目录内的所有内容

    os.remove() 删除文件

    os.remove() 方法用于删除指定路径的文件。

    如果指定的路径是一个目录,将抛出异常。
    使用示例

    import os
    p = r'D:\soft\1.jpg'
    os.remove(p)
    

    如果删除的是一个文件,文件可以是图片,文本,excel等(注意是文件不是文件夹)
    如果不存在此文件会抛出异常FileNotFoundError: [WinError 2] 系统找不到指定的文件

    当我们想删除一个文件夹的时候,删除整个logs文件

    此时会抛出异常 PermissionError: [WinError 5] 拒绝访问
    os.remove()只能删除一个文件,并且文件路径要存在,删文件夹会报错。

    os.removedirs() 递归删除目录

    os.removedirs() 方法用于递归删除目录。但目录必须是空的。

    import os
    p = r'D:\soft\logs'
    os.removedirs(p)
    

    如果目录不为空,会抛出异常OSError: [WinError 145] 目录不是空的,所以这个功能比较鸡肋,我们一般希望能直接删除整个文件夹以及子目录

    shutil.rmtree() 删除这个文件夹目录

    shutil.rmtree() 递归删除一个目录以及目录内的所有内容

    import shutil
    p = r'D:\soft\logs'
    shutil.rmtree(p)
    

    如果文件路径不存在会抛出异常:FileNotFoundError: [WinError 3] 系统找不到指定的路径。

    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,则将在复制的目录下生成物理副本来替代符号连接
    shutil.rmtree( src )   #递归删除一个目录以及目录内的所有内容
    
  • 相关阅读:
    解决no such file or directory的问题
    手把手教你如何通过企业账号in house发布程序 ----都是被苦逼的appstore审核逼的!!!!!
    java中如何使用log4j
    xStream完美转换XML、JSON
    Spring MVC 教程
    StringUtils 类的使用
    CSS 与IE浏览器兼容问题
    CSS各种颜色的符号
    TABLE 应用 CSS美化
    初学WebSocket
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/15572215.html
Copyright © 2011-2022 走看看