zoukankan      html  css  js  c++  java
  • python之shutil模块的使用

    shutil模块

      shutil模块是一种高级的文件操作工具,其对文件的复制与删除操作非常强大,shutil 名字来源于 shell utilities,该模块拥有许多文件(夹)操作的功能,包括复制、移动、重命名、删除、压缩,解压等等;

    常用功能:

    shutil.copy():实现文件复制功能,返回值是复制成功后的字符串格式的文件路径;

    shutil.copy2():在copy上的基础上吧复制文件最后访问时间与修改时间也复制过来;

    shutil.copyfileobj(fsrc, fdst[, length]):将文件内容拷贝到另一个文件中 shutil.copyfileobj(open('a.txt','r'), open('b.txt''w'))

    >>> shutil.copy('E:\python\a.txt','E:\win10') #如果后面跟目录,直接在目录下创建一个新的文件,与源文件同名。
    'E:\win10\a.txt'
    >>> shutil.copy('E:/python/a.txt','E:/win10/a_1.txt')#如果跟上文件名,等同于复制过来之后给文件重命名。
    'E:/win10/a_1.txt'

    shutil.copytree():复制整个文件夹,里面的文件、子文件夹都会被复制过去,可做备份,

    >>> shutil.copytree('E:\file','E:\file_1')#此时file_1文件并不存在,如有此文件则会报错:(FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'E:\file_1')
    'E:\file_1'
    >>> shutil.copytree('E:\file','E:\file_1',ignore=shutil.ignore_patterns('*.pyc''tmp*'))#压缩时忽略某些文件

    shutil.move(): 移动文件或文件夹,返回值是移动后文件的绝对路径字符串

    >>> shutil.move('E:\file\file2.txt','E:\file_1')#文件移动到其他目录上,如果该目录下存在同名文件将会被重写。
    'E:\file_1\file2.txt'
    >>> shutil.move('E:\file\file2.txt','E:\file_1\file_2.txt')#文件移动加重命名。
    'E:\file_1\file_2.txt'
    >>> shutil.move('E:\file\file2.txt','E:\file_1\file')
    'E:\file_1\file'
    >>> shutil.move('E:\file\file1','E:\file_2\')#file1文件夹下的文件移动到file_2文件夹下
    'E:\file_2\'

    shutil.rmtree(path):删除文件,(谨慎使用

    shutil.get_archive_formats():返回支持的格式列表;

    >>> shutil.get_archive_formats()
    [('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('xztar', "xz'ed tar-file"), ('zip', 'ZIP file')]

    shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0dry_run=0, owner=None, group=None, logger=None):文件压缩

     ----base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径

     ----format(zip): 压缩包种类,“zip”, “tar”, “bztar”,“gztar”

     ----root_dir 要压缩的文件夹路径(默认当前目录)

     ----owner:用户,默认当前用户group 组,默认当前组

     ----logger用于记录日志,通常是logging.Logger对象

    >>> shutil.make_archive('E:\file_2\name','gztar','E:\file_1')#将file_1目录下的文件以gztar格式压缩放在file_2目录下,名字为name
    'E:\file_2\name.tar.gz'

    shutil.unpack_archive(filename[, extract_dir[, format]]) :解压

      filename :归档文件的全路径

      extract_dir :解压归档的目标目录名称,如果没有提供,则取当前工作目录
      format :归档格式:'zip', 'tar' 或 'gztar'中的一种。或者是通过register_unpack_format()注册时的其他格式,如果未提供则会根据归档文件的扩展名去查找相应的解压器,如果没找到则会引发ValueError。
     

    shutil对压缩包的处理,通过调用zipfile 和tarfile两个模块,zipfile是python里用来做zip格式编码的压缩和解压缩的,最重要两个class----ZipFile和ZipInfo。tarfile模块用于读写tar归档文件,它也可以同时实现压缩功能。与zipfile模块相比,tarfile模块 可以直接将一个目录进行归档并压缩。

  • 相关阅读:
    累积进度图及本周PSP饼状图
    四则运算
    结对编程
    关于索引的误解
    Examining Pages
    索引存储原理
    【转】学习Robot Framework必须掌握的库—-BuiltIn库
    【转】Robot Framework用法总结
    【转】浅谈自动化测试框架设计
    【转】python虚拟环境--virtualenv
  • 原文地址:https://www.cnblogs.com/master-song/p/8720732.html
Copyright © 2011-2022 走看看