• python模块--zipfile文件压缩


    zipfile模块是python中一个处理压缩文件的模块,解决了不少我们平常需要处理压缩文件的需求 ,本文主要谈谈zipfile几个常用的用法。

    首先我在Windows操作系统中创建如下的文件目录:

    一、读取压缩文件:

    代码:

    import zipfile

    import os

    # 压缩文件路径

    zip_file_path = r'F:压缩文件zipfilezipfile_dir.zip'

    # 压缩文件目录路径

    zip_dir = r'F:压缩文件zipfilezipfile_dir'

    # 打开压缩文件

    zip_files = zipfile.ZipFile(zip_file_path,mode='r')

    # 获取zip压缩文件的相关信息

    for content in zip_files.infolist():

        print(content)

    # 遍历zip压缩文件的文件名称

    for name in zip_files.namelist():

        print(name)

    # 记得要像读取file那样关闭文件句柄

    zip_files.close()

    压缩文件的名称、压缩算法和大小等信息

    <ZipInfo filename='zipfile_dir/test1.txt' compress_type=deflate external_attr=0x20 file_size=2918 compress_size=1591>
    <ZipInfo filename='zipfile_dir/test2.txt' compress_type=deflate external_attr=0x20 file_size=2918 compress_size=1591>
    <ZipInfo filename='zipfile_dir/' external_attr=0x10>

    压缩文件目录下所有文件的名称

    zipfile_dir/test1.txt
    zipfile_dir/test2.txt
    zipfile_dir/

    二、往zip目录中添加文件

    代码:

    # 在指定zip压缩文件目录下创建zip文件

    create_zip_file = zipfile.ZipFile(zip_file_path, mode='a', compression=zipfile.ZIP_DEFLATED)

    new_file_path = os.path.join(zip_dir,r'README.txt')

    # 将文件夹中的文件拷贝进zip目录

    file_name = 'README.txt'

    create_zip_file.write(new_file_path,file_name)

    create_zip_file.close()

    注意:加入zip目录的文件本身在文件夹中已经存在,否则zipfile模块搜索路径是无法找到的。

    添加成功:

    三、解压文件:

    zipfile提供的压缩方法有:

    ZIP_STORED,ZIP_DEFLATED, ZIP_BZIP2和ZIP_LZMA

    ZIP_STOREED:只是作为一种存储,实际上并未压缩

    ZIP_DEFLATED:用的是gzip压缩算法

    ZIP_BZIP2:用的是bzip2压缩算法

    ZIP_LZMA:用的是lzma压缩算法

    gzip和bzip2压缩算法的区别:

    使用 gzip要比bzip2快,但是bzip2会获得比 gzip更高的压缩率,即bzip压缩后的压缩文件跟小。

    更多关于这几种算法的区别可以看这两篇篇文章:

    https://www.cnblogs.com/kuang17/p/7193124.html

    https://blog.csdn.net/leilonghao/article/details/73200859

    代码:

    # 解压后文件放置的目录

    unzip_dir = r'F: k_demo_test'

    # 解压前文件的zip目录

    zip_file2_path = r'F: k_demo.zip'

    unzip_files = zipfile.ZipFile(zip_file2_path,mode='r',compression=zipfile.ZIP_DEFLATED)

    unzip_files.extractall(unzip_dir)

    unzip_files.close()

    解压成功:

    参考文章:

    https://www.cnblogs.com/kuang17/p/7193124.html

    https://blog.csdn.net/leilonghao/article/details/73200859

    更多内容,请参考官方文档:https://docs.python.org/3/library/zipfile.html#zipfile.ZIP_STORED

  • 相关阅读:
    土豆网自动播放代码
    js倒计时小插件(兼容大部分浏览器)
    带按钮的网页播放器代码(附文件)
    列出目录下所有文件
    day19 进度条 & 随机验证码
    day18 json与pickle
    day14.2_三元表达式、列表生成式
    day14.1_生成器
    day13_迭代器
    day12.2_完善装饰器
  • 原文地址:https://www.cnblogs.com/thomson-fred/p/10328662.html
Copyright © 2020-2023  润新知