import zipfile

# f=zipfile.ZipFile(filename, mode="r", compression=ZIP_STORED, allowZip64=False)
# filename是一个文件的路径
# mode a :追加模式
# mode r :只读模式
# mode w :写入模式
# allowZip64:是个bool型变量,当设置为True的时候就是说可以用来创建大小大于2G的zip文件,默认值是True; # 可判断是否是压缩文件:
# zipfile.is_zipfile(filename) # 将多个文件压缩成一个文件.
# with zipfile.ZipFile('test2.zip', mode='w') as zipf:
# zipf.write('a2.txt')
# zipf.write('a3.txt')
# zipf.write('a4.txt')
# zipf.write('a.txt') # 将文件解压到 abc文件内(当前文件下的abc文件)
# with zipfile.ZipFile('test.zip') as zipf:
# zipf.extractall('abc') # 获取压缩包内的文件名:
# with zipfile.ZipFile('test.zip','r') as zipf:
# for i in zipf.namelist():
# print(i) # 获取压缩包内的文件对象,可查看文件名,大小,mode
# with zipfile.ZipFile('test.zip','r') as zipf:
# for i in zipf.infolist():
# print(i)
# <ZipInfo filename='a2.txt' filemode='-rw-rw-rw-' file_size=43> # 将zip文件的目录结构打印到stdout上,包括每个文件的path,修改时间和大小
# with zipfile.ZipFile('test.zip','r') as zipf:
# zipf.printdir() # 打开压缩文件中的一个文件
# with zipfile.ZipFile('test.zip') as zipf:
# info = zipf.open("a.txt",'r')
# print(info.read())

四种压缩模式:

import zipfile"""ZIP_STORED (no compression), ZIP_DEFLATED (requires zlib),
| ZIP_BZIP2 (requires bz2) or ZIP_LZMA (requires lzma).""" # ZIP_STORED
# with zipfile.ZipFile('a.zip','w',compression=0) as z:
# z.write('a1.txt')
# z.write('a2.txt')
# z.write('a3.txt') # ZIP_LZMA
# with zipfile.ZipFile('b.zip','w',compression=zipfile.ZIP_DEFLATED) as z:
# z.write('a1.txt')
# z.write('a2.txt')
# z.write('a3.txt') # ZIP_BZIP2
# with zipfile.ZipFile('c.zip','w',compression=zipfile.ZIP_BZIP2) as z:
# z.write('a1.txt')
# z.write('a2.txt')
# z.write('a3.txt') # ZIP_LZMA
# with zipfile.ZipFile('d.zip','w',compression=zipfile.ZIP_LZMA) as z:
# z.write('a1.txt')
# z.write('a2.txt')
# z.write('a3.txt')

压缩效果:

如何压缩目录以及目录内的文件:

注意:

  直接压缩文件的目录,那么压缩内只有压缩的目录,却没目录下的文件。

这里要用到os.walk 文件遍历的方法。

top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。

  • root 所指的是当前正在遍历的这个文件夹的本身的地址
  • dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
  • files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
# with zipfile.ZipFile('CC2.zip','w',compression=zipfile.ZIP_DEFLATED) as z:
# for root, dirs, files in os.walk(r".\text", topdown=False):
# for name in files:
# print(os.path.join(root, name))
# z.write(os.path.join(root, name))
os.path.join(root, name) 拼接目录下的文件路径,然后传递给zipfile.write方法保存

python - zipfile模块的更多相关文章

  1. Python ZipFile模块详解(转)

    Python zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要使用这两个cl ...

  2. Python zipfile模块学习

    转载自https://www.j4ml.com/t/15270 import zipfile import os from zipfile import ZipFile class ZipManage ...

  3. python笔记之ZipFile模块

    python笔记之ZipFile模块 zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下, ...

  4. python中zipfile模块实例化解析

    文章内容由--“脚本之家“--提供,在此感谢脚本之家的贡献,该网站网址为:https://www.jb51.net/ 简介: zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是 ...

  5. Python之路(第十八篇)shutil 模块、zipfile模块、configparser模块

    一.shutil 模块 1.shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中,需要打开文件 import shutil shutil.co ...

  6. Python标准库学习之zipfile模块

    ZipFile模块里有两个非常重要的class, 分别是 ZipFile和ZipInfo. ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息的. ...

  7. Python连载13-shutile模块(续)和zipfile模块

    一.shutil模块(续) 1.函数:upack_archive() (1)用法:解包操作 (2)格式:shutil.unpack_archive("归档文件地址“,”解包之后的地址“) ( ...

  8. python学习笔记之zipfile模块

    为什么学习: 在做自动化测试平台的apk上传功能部分时候,涉及到apk上传后提取apk的icon图标,通过aapt解析apk,获取对应icon在apk中的地址,通过python的zipfile模块来解 ...

  9. python 压缩模块大杂烩(zipfile,bz2,lzma,gzip,tarfile,zlib)

    [*] 以下压缩模块请结合python的官方文档(https://docs.python.org/3.5/library/index.html)来实践或者对比(我的是python 3.5) 1.pyt ...

随机推荐

  1. JS实现选择排序

    function selectSort(arr){ var len=arr.length; var temp; for(var i=0;i<len-1;i++){ for(var j=i+1;j ...

  2. C# 正则表达式中的顺序环视和逆序环视

    环视结构不匹配任何字符,只匹配文本中的特定位置. 顺序环视:从左向右查看文本,尝试匹配子表达式,如果能够匹配则返回匹配成功信息.顺序环视使用「 (?=...) 来标识」,例如「 (?=\d) 」,它表 ...

  3. zTree基础

    zTree使用 zTree 是一个依靠 jQuery 实现的多功能 “树插件”, 而且拥有较好的浏览器兼容性,有着丰富的功能以及可以自定义样式,足以满足大部分业务的开发. 第一步先导入css及js文件 ...

  4. python中执行shell命令的几个方法小结

    原文 http://www.jb51.net/article/55327.htm 最近有个需求就是页面上执行shell命令,第一想到的就是os.system, os.system('cat /proc ...

  5. 信用评分卡Credit Scorecards (1-7)

      欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 python风控评分卡建模和风控常识 https://study.163.com/course/introductio ...

  6. 因子分析factor analysis_spss运用_python建模(推荐AAA)

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  7. MySQL复制相关参数详解

    MySQL复制相关参数详解 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.复制相关系统变量 1>.server_id 是必须设置在master和每个slave上的唯一标 ...

  8. 【SQL】SQL中on条件与where条件的区别

     #前言 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: 1.on条件是在生成临时表时 ...

  9. 微服务之consul

    一.概述 consul是google开源的一个使用go语言开发的服务发现.配置管理中心服务.内置了服务注册与发现框 架.分布一致性协议实现.健康检查.Key/Value存储.多数据中心方案,不再需要依 ...

  10. android 与html交互java调js与js调java操作

    1.首先在项目下建一个assets目录(右击app->New->Folder->Assets Flolder),直接放在项目根目录下和res目录同级别(把所html,js,图片,cs ...