zoukankan      html  css  js  c++  java
  • shutil复制粘贴和压缩

    shutil复制粘贴和压缩

    shutil

    高级的文件、文件夹、压缩包处理模块

    @1)、将文件内容拷贝到另一个文件中

        import shutil  
        shutil.copyfileobj(open("1.txt",'r'), open('2.txt','w'))  

    @2)、拷贝文件

        import shutil  
        shutil.copyfile('f1.log','f2.log')  

    @3)、仅拷贝权限。内容、组、用户不变

        shutil.copymode('f1.log','f2.log')  

    @4)、拷贝状态的信息,包括:mode bits ,atime(文件防伪时间), mtime, flags

    shutil.copystat('f1.log','f2.log') 

    @5)、 拷贝文件和权限

        shutil.copy(src,dst)  
        import shutil  
        shutil.copy('f1.log', 'f2.log')  

    @6)、拷贝文件和状态信息

        import shutil  
        shutil.copy2('f1.log', 'f2.log')  

    @7)、递归的去拷贝文件夹

        shutil.ignore_patterns(*patterns)  
        shutil.copytree(src,dst, symlinks=False, ignoer=None)  
        案例:  
        import shutil  
        shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns("*.py", "tmp*"))  #(ignore忽略)  

    @8)、递归的去删除文件

        shutil.retree(path[,ignore_errors[,onerror]])  
        import shutil  
        shutil.retree('folder1')  

    @9)、递归的去移动文件,它类似mv命令,其实就是重命令

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

    压缩和解压

    @10)、shutil.make_archive(base_name, format,...)
    创建压缩包并返回文件路径, 例如:zip, tar

        a]· base_name :压缩包的文件名,也可以是压缩包路径。只是文件名时,则保持至当前目录,否则保存至指定路径  
            如:www    -->保存至当前路径  
            如:/Users/local/www  -->保存至/users/local  
        b]. format:压缩包种类,"zip,tar,bztar,gztar"  
        c]. root_dir :要压缩的文件夹路径(默认当前目录)  
        d]. owner: 用户,默认当前用户  
        d]. group:组,默认当前组  
        e]. logger:用于记录日志,通常是logging.Logger对象  

    案例一:

    压缩
    #将/usr/local/lownloads/test下的文件打包放置当前程序目录

        import shutil  
        ret = shutil.make_archive("www", 'gztar', root_dir = "/usr/local/downloads/test")  
        #将/usr/local/downsload/test 下的文件打包方放置在/usr/loca/目录  
        import shutil  
        ret = shutil.make_archive("/usr/local/www", 'gztar', root_dir='usr/local/downsload/test')  
    View Code
    f].shutil对压缩包的处理是调用ZipFile和TarFile两个模块来进行的,详细:
        import zipfile
        #压缩
        z = zipfile.ZipFile('laxi.zip', 'w')  
        z.write('a.log')  
        z.write('data.data')  
        z.close()  

      #解压

        z = zipfile.ZipFile('lai.zip','r')  
        z.extractall()  
        z.close()  

        import tarfile
        #压缩
     

        tar = tarfile.open('your.tar','w')  
        tar.add('/usr/local/pycharm/bbs2.log', arcname='bbs2.log')  
        tar.add('/usr/local/pycharm/cmd.log', arcname='cmd.log')  
        tar.close()  

      #解压

        tar = tarfile.open('your.tar', 'r')  
        tar.extractall() #可设置解压地址  
        tar.close()  
  • 相关阅读:
    BZOJ3813 奇数国
    BZOJ2735 世博会
    BZOJ2081 [Poi2010]Beads
    BZOJ3276 磁力
    BZOJ2054 疯狂的馒头
    BZOJ2610 [Poi2003]Monkeys
    BZOJ2428 [HAOI2006]均分数据
    BZOJ2120 数颜色
    BZOJ2527 [Poi2011]Meteors
    补比赛——牛客OI周赛9-普及组
  • 原文地址:https://www.cnblogs.com/renfanzi/p/5644578.html
Copyright © 2011-2022 走看看