• python 标准库之shutil


      os模块不仅提供了新建文件、删除文件、查看文件属性的操作功能,还提供了对文件路径的操作功能。但是,对于移动、复制、打包、压缩、解压文件及文件夹等操作,os模块没有提供相关的函数,此时需要用到shutil模块。shutil模块是对os模块中文件操作的补充,是Python自带的关于文件、文件夹、压缩文件的高层次的操作工具,类似于高级API

    shutil.copyfile( src, dst,length=16*1024)    #从原src复制到dst中去。 如果当前的dst已存在的话就会被覆盖掉,length 缓冲区大小,即src每次读取的长度
    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 )     #递归删除一个目录以及目录内的所有内容

      

    1. shutil.copyfile( src, dst, length=16*1024

    将文件内容拷贝到另一个文件中

    import shutil
    shutil.copyfile('f1.log','f2.log')#目标文件无需存在
    

      

    2.shutil.move( src, dst)

    import shutil
    
    shutil.move('folder1','folder3')
    

      

    3.shutil.copymode( src, dst)

      

    仅拷贝权限。内容、组、用户均不变
    import shutil
    shutil.copymode('f1.log','f2.log')#目标文件必须存在

      

    4.shutil.copystat( src, dst)  

    仅拷贝状态的信息,包括:mode bits, atime, mtime, flags
    import shutil
    shutil.copystat('f1.log','f2.log')#目标文件必须存在

      

    5.shutil.copy( src, dst)  

    拷贝文件和权限
    
    import shutil
    shutil.copy('f1.log','f2.log')
    

      

    6.shutil.copy2( src, dst)   

    拷贝文件和状态信息
    
    import shutil
    shutil.copy2('f1.log','f2.log')
    

      

    7.shutil.copytree( olddir, newdir, True/Flase) 

    递归的去拷贝文件夹
    
    import shutil
    
    shutil.copytree('folder1','folder2', ignore=shutil.ignore_patterns('*.pyc','tmp*'))
    
    #目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除
    

                        

    8.shutil.rmtree( src )

    递归的去删除文件
    
    import shutil
    shutil.rmtree('folder1')
    

     9.shutil.copyfileobj(fsrc, fdst[, length])

    将文件内容拷贝到另一个文件中
    
    import shutil
    
    shutil.copyfileobj(open('old.xml','r'), open('new.xml','w'))
    

     

  • 相关阅读:
    Web开发技术大会演讲
    方法的长度
    避免复制与粘贴
    引入工厂方法支持扩展
    利用多态重构为带参方法
    代码质量对系统的影响
    《重构之美》开篇
    老鸟对菜鸟的一些建议
    jQuery 使用 AJAX解决跨域问题jQuery 使用 AJAX解决跨域问题
    uniapp renderjs通信
  • 原文地址:https://www.cnblogs.com/a438842265/p/13097620.html
Copyright © 2020-2023  润新知