• python学习之-- shutil模块


    shutil 模块
    功能:文件/文件夹的复制,压缩处理模块
    shutil.copyfileobj(fsrc,fdst[,length]):将文件内容拷贝到另一个文件中,也可以是部分内容
    举例:文件复制
    import shutil
    # 必须先准备好读写的文件
    sfile = open('func1.py',encoding='utf-8')
    dfile = open('func1.py.bak','w',encoding='utf-8')
    # 进行内容的复制
    shutil.copyfileobj(sfile,dfile)
      注意:显然以上这个方法不实用,下面的方法最实用!
    shutil.copy(src,dst):直接将源文件复制到目标,包括文件权限
    如:shutil.copy('/var/log/message','message')
    shutil.copyfile(src,dst):直接将源文件复制到目标,不包括文件权限
    shutil.copymode(src,dst):复制文件权限,用户组不变
    shutil.copystat(src,dst):复制文件状态(文件的时间等属性)的信息,包括:mode bits,atime,mtime,flags
    shutil.copy2(src,dst):复制文件和权限状态信息(全复制)
    shutil.copytree(src,dst):复制整个目录
    shutil.rmtree(src):删除目录
    shutil.move(src,dst):移动文件或文件夹
    shutil.make_archive(base_name,format,..):创建压缩包并返回文件路径。缺点:无法过滤。例如:zip,tar
    base_name:压缩包的文件名,也可以是包路径,只是文件名时,保存到当前目录,否则保存到指定目录。
    format:压缩包种类(zip,tar,bztar,gztar)
    root_dir:要压缩的文件夹路径(默认当前目录)
    owner:用户,默认当前用户
    group:组,默认当前组
    logger:用户记录日志
    举例:将/var/log的文件打包放入当前目录
    import shutil
    ret = shutil.make_archive('wwwwww','gztar',root_dir='/var/log')
    举例2:将/var/log/的文件打包放入/root/目录
    ret = shutil.make_archive('root/wwww','gztar',root_dir='/var/log')
    注意:以上打包为zip后,最好用zipfile模块解包。
    shutil对压缩包的处理是调用ZipFile和TarFile 模块
    如:使用ZipFile进行压缩和解压
    import zipfile
    #注意,zipfile只能压缩文件,压缩目录只有目录结构
    #压缩:
    z = zipfile.ZipFile('bk.zip','w')
    z.write('a.log')
    z.write('data.log')
    z.close()
    #解压
    z = zipfile.ZipFile('bk.zip','r')
    z.extractall()
    z.close()
    如:用tar进行打包(但是不压缩,压缩需要使用zipfile)
    import tarfile
    tar = tarfile.open('/root/your.tar','w')
    #注意:这里使用了arcname,则打包后的只将log下的文件全部打包到test文件夹里,如果不带arcname参数,则打包的是路径+文件
    tar.add('/var/log',arcname='test')
    tar.add('/test.zip')
    tar.close()
  • 相关阅读:
    js计算器
    还差得远
    首个项目结束
    Web前端开发规范文档你需要知道的事
    CSS需要经过多次练习和积累才能掌握
    在Javascript中闭包(Closure)
    Web前端和网站美工
    IE中的条件注释
    计算机类期刊投稿
    忙就一个字
  • 原文地址:https://www.cnblogs.com/zy6103/p/6833440.html
Copyright © 2020-2023  润新知