• shutil、zipfile,tarfile


    shutil 模块提供了大量的文件的高级操作。特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作。

    1、 shutil.copyfileobj(fsrc, fdst[, length])

    功能:把一个文件的内容拷贝到另外一个文件中。

    2、shutil.copyfile(src, dst)

    功能:拷贝文件,但不拷贝权限

    3、shutil.copymode(src, dst)

    功能:仅拷贝权限,内容、组、用户均不变。

    4、shutil.copystat(src, dst)

    功能:仅拷贝文件的状态信息,包括:mode bits, atime, mtime, flags

    5、shutil.copy(src, dst)

    功能:拷贝文件和文件的权限

    6、shutil.copy2(src, dst)

    功能:拷贝文件和文件的状态信息

    7、shutil.copytree(src, dst[, symlinks=False[, ignore=None]])

    功能:递归的去拷贝文件,相当于Shell中的cp -r命令

    8、shutil.rmtree(path[, ignore_errors[, onerror]])

    功能:递归的去删除文件,相当于Shell中的rm -rf命令

    9、shutil.move(src, dst)

    功能:递归的去移动文件 相当于Shell中的mv命令,可以用来重命名。

    10、shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry=0, owner=None, group=None, logger=None)

    功能:创建压缩包并且返回文件路径,例如:zip,tar包

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

    format:压缩包种类,'zip','tar','bztar','gztar'

    root_dir:需要压缩的文件夹路径(默认当前路径)

    owner:用户,默认当前用户

    group:组,默认当前组

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

    11、zipfile压缩&解压缩

    功能:以zip的形式压缩文件,注意了这个只能压缩文件,不能压缩目录,如果压缩,也只能显示空目录。

    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()

    12、tarfile压缩&解压缩

    功能:以tar的形式打包文件,这个能打包所有文件,包括目录

    import tarfile

    # 打包

    tar = tarfile.open('your.tar','w')

    #不加arcname打的是绝对路径,也就是/Users/wupeiqi/PycharmProjects/bbs2.zip,加这个表示你在your.tar中加什么文件就写什么文件名,也就是bbs2.zip

    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()

    1、tar打包不会压缩文件,所以文件的大小没有变

    2、zip才会压缩,所以压缩后的文件大小会变小

    3、一般情况下是先打包再压缩

  • 相关阅读:
    Allow Zero Length 允许空字符串 ACCESS
    数据集永久字段的Visble 属性为何不起作用
    Microsoft Jet 数据库引擎 SQL 和 ANSI SQL 的比较
    Microsoft 数据访问组件 (MDAC) 的版本历史记录
    Windows 7 英文版操作系统中文软件乱码解决方法
    DBLookupComboBox 的初始值
    无法为更新定位行,一些值可能已在最后一次读取后已更改
    [hdu6428]Problem C. Calculate
    [hdu6437]Problem L. Videos
    [hdu6434]Problem I. Count
  • 原文地址:https://www.cnblogs.com/windyrainy/p/10785493.html
Copyright © 2020-2023  润新知