• Python3学习之路~5.6 shutil & zipfile & tarfile模块


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

    shutil.copyfileobj(fsrc, fdst[, length])#将文件内容拷贝到另一个文件中,可以部分内容
    shutil.copyfile(src, dst)                #拷贝文件
    shutil.copymode(src, dst)                #仅拷贝权限。内容、组、用户均不变
    shutil.copystat(src, dst)                #拷贝状态的信息,包括:mode bits, atime, mtime, flags
    shutil.copy(src, dst)                    #拷贝文件和权限
    shutil.copy2(src, dst)                    #拷贝文件和状态信息
    shutil.ignore_patterns(*patterns)
    shutil.copytree(src, dst, symlinks=False, ignore=None)    #递归的去拷贝文件
    shutil.rmtree(path[, ignore_errors[, onerror]])            #递归的去删除文件
    shutil.move(src, dst)                                    #递归的去移动文件
    shutil.make_archive(base_name, format,...)                #创建压缩包并返回文件路径,例如:zip、tar
    '''
    base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
    如:www                        =>保存至当前路径
    如:/Users/wupeiqi/www         =>保存至/Users/wupeiqi/
    format:    压缩包种类,“zip”, “tar”, “bztar”,“gztar”
    root_dir:    要压缩的文件夹路径(默认当前目录)
    owner:    用户,默认当前用户
    group:    组,默认当前组
    logger:    用于记录日志,通常是logging.Logger对象
    '''

    代码实例:

    import shutil
    
    with open('yesterday.txt',encoding='UTF-8') as f1,
        open('yesterday2.txt','w',encoding='UTF-8') as f2:
        shutil.copyfileobj(f1,f2) #将文件内容拷贝到另一个文件中,可以部分内容
    
    shutil.copyfile('yesterday2.txt','yesterday3.txt') #拷贝文件
    shutil.copy('yesterday2.txt','yesterday4.txt') #拷贝文件和权限
    shutil.copy2('yesterday2.txt','yesterday5.txt') #拷贝文件和状态信息
    shutil.copytree('test','new_test') #递归的去拷贝文件,即拷贝test目录下的所有子目录和文件到new_test目录中
    shutil.rmtree('new_test') #递归的去删除文件
    shutil.move('test','Day05') #递归的去移动文件
    
    # 将 D:python-studys14Day03 下的文件打包放置当前程序目录,文件名为shutil_archive_test.zip
    shutil.make_archive('shutil_archive_test','zip','D:python-studys14Day03')
    
    # 将 D:python-studys14Day03 下的文件打包放置 D:/test 目录,文件名为shutil_archive_test.zip
    shutil.make_archive("D:/test/shutil_archive_test", 'zip', root_dir='D:python-studys14Day03')
    View Code

    shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的,详细:

    import zipfile
    
    # 压缩
    z = zipfile.ZipFile('laxi.zip', 'w')
    z.write('a.log')
    z.write('data.data')
    z.close()
    
    # 解压
    z = zipfile.ZipFile('laxi.zip', 'r')
    z.extractall()
    z.close()
    zipfile 压缩解压
    import tarfile
    
    # 压缩
    tar = tarfile.open('your.tar','w')
    tar.add('/Users/wupeiqi/PycharmProjects/bbs2.zip', arcname='bbs2.zip')
    tar.add('/Users/wupeiqi/PycharmProjects/cmdb.zip', arcname='cmdb.zip')
    tar.close()
    
    # 解压
    tar = tarfile.open('your.tar','r')
    tar.extractall()  # 可设置解压地址
    tar.close()
    tarfile 压缩解压
  • 相关阅读:
    执行shell脚本的四种方式(转)
    linux free命令详解(一)
    linux TOP命令各参数详解【转载】
    grep命令
    vim常用命令
    IntelliJ Idea注释模板--类注释、方法注释
    [Chrome]抓请求直接生成可执行代码
    记录Markdown工具Typora
    VSCODE 配置远程开发环境
    [Boost::Polygon]多边形相减得到新的多边形序列
  • 原文地址:https://www.cnblogs.com/zhengna/p/9229634.html
Copyright © 2020-2023  润新知