zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Vue--爬坑
    小程序--爬坑
    同源策略
    如何更改placeholder属性中文字颜色
    vue 项目上传到码云,push时error: failed to push some refs to 'https://gitee.com/mawenrou/vue_ht.git'
    node服务端口被占用
    webpack配置自动打包重新运行npm run dev出现报错
    解决回调地狱
    Apache Spark
    RAM computer
  • 原文地址:https://www.cnblogs.com/thomson-fred/p/10328662.html
Copyright © 2011-2022 走看看