专栏首页python3python模块--zipfile文件压

python模块--zipfile文件压

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

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

一、读取压缩文件:

代码:

import zipfile

import os

# 压缩文件路径

zip_file_path = r'F:\压缩文件zipfile\zipfile_dir.zip'

# 压缩文件目录路径

zip_dir = r'F:\压缩文件zipfile\zipfile_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:\tk_demo_test'

# 解压前文件的zip目录

zip_file2_path = r'F:\tk_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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Python学习21】Python中函数的用法

    今天学习了Python函数的用法,了解了使用Python如何定义一个函数。 而且代码编写过程中也遇到了一些小小的错误,特此记录一下,以方便以后在遇到同样错误时能...

    py3study
  • H3C MAC地址认证概述

        MAC 地址认证是一种基于端口和 MAC 地址对用户的网络访问权限进行控制的认证方法,它不需要用户安装任何客户端软件。设备在启动了 MAC 地址认证的端...

    py3study
  • python内置模块~shutil

    --High-level file operations,高级的文件操作模块~ shutil 模块的使用主要包括对文件及目录的移动、复制、打包、压缩(解压)、删...

    py3study
  • 2019 年 stackoverflow 网站最受欢迎的 20 个 Python 问题

    在最新一期的“Python开发者周刊”(Pycoder's weekly)里,我看到一则有意思的分享,故转出来分享给大家。

    Python猫
  • 基于selenium及python实现下拉选项定位select

    定位到 select 后,下方查看元素属性地方,点 select 标签前面的+号或者箭头,就可以展开里面的选项内容了。

    砸漏
  • Kubernetes Eviction Manager工作机制分析

    研究过Kubernetes Resource QoS的同学,肯定会有一个疑问:QoS中会通过Pod QoS和OOM Killer进行资源的回收,当发生资源紧缺的...

    Walton
  • 洗牌期或将来临,网络电影发展路在何方?

    孟永辉
  • 不完全信息博弈中的声音搜索(CS.GT)

    搜索从一开始就在计算机游戏研究中扮演着重要的角色。虽然在线搜索已经广泛应用于诸如国际象棋和围棋等完全信息游戏中,但不完全信息游戏的在线搜索方法是最近才引入的。本...

    用户7236395
  • swiper库入门介绍

    一进入界面就可以看到Swiper 4的标题,直接点击开始使用Swiper,开始入门使用。

    Devops海洋的渔夫
  • 【日记】150微服务项目第20天

    刘小爱

扫码关注云+社区

领取腾讯云代金券