zipfile模块,提供了基本操作后缀为“zip”的文件的接口,一般使用 ZipFile 类完成操作

1、模块方法

zipfile.is_zipfile(filename):判断 filename 是否是一个有效的 zip 文件

2、模块的类

2.1 ZipFile 类,读写 ZIP 文件

2.1.1 初始化构建类:ZipFile(file[, mode[, compression[, allowZip64]]]):打开一个 ZIP 格式的文件进行读写

参数设置:
file:要打开的文件
mode:打开文件方式,有 r 和 w、a,默认为 r,读取一个已存在的文件,w 会覆盖或写新文件,对一个已存在的 ZIP 文件以 a 模式打开,会把新文件加入压缩包中,如果不是 ZIP 文件,会把压缩文件加入到 file 中去(不知道会发生什么。。)
compression:指定压缩方法,默认 ZIP_STORED,还可以是 zlib 模块下支持的 ZIP_DEFLATED
allowZip64:默认 False,为 True 时可以操作大于 2GB 的文件

2.1.2 实例方法

close():关闭压缩文件,退出程序前不关闭的话会导致未写入
getinfo(name):返回一个 ZipInfo 对象,包含压缩文件里名为 name 的信息
infolist():返回一个列表,每个元素都是一个 ZipInfo 对象,对应压缩文件里的每个文件
namelist():列表形式返回压缩文件里的每个文件名
printdir():输出压缩包内容至 sys.stdout
setpassword(pwd):设置默认密码
open(name[, mode[, pwd]]):解压名为 name 的文件,以只读的 file-like 对象返回(有以下方法 read(), readline(), readlines(), __iter__(), next()),mode 可以为 r、U、rU,pwd 指定解压密码
extract(member[, path[, pwd]]):解压名为 member 的文件到当前目录,path 指定解压至别的目录,pwd 指定密码
extractall([path[, members[, pwd]]]):解压所有文件至当前目录,path 指定解压至别的目录,member 指定只解压其中的哪些文件,pwd 指定密码
read(name[, pwd]):字节形式返回 name 的解压结果,pwd 指定密码
write(filename[, arcname[, compress_type]]):把 filename 文件压缩,压缩包内名字为 arcname,compress_type 可以覆盖类的压缩方法
writestr(zinfo_or_arcname, bytes[, compress_type]):把 bytes 写入压缩包内,名为 zinfo_or_arcname,compress_type 可以覆盖类的压缩方法

2.1.3 实例属性

debug:设置 debug 信息输出等级,默认 0,不输出,最高 3
comment:设置 ZIP 文件的提示信息

2.2 PyZipFile 对象

2.2.1 PyZipFile 对象和 ZipFile 对象完全相同,只是多了一个额外方法

writepy(pathname[, basename]):把 pathname 下 *.py[co] 文件都压缩

2.3 ZipInfo 对象,是由 ZipFile 的 getinfo() 和 infolist() 方法生成的对象

2.3.1 实例属性

filename:压缩文件名
date_time:文件最后修改时间,年、月、日、时、分、秒
compress_type:压缩方法
comment:提示信息
extra:额外数据信息(不清楚指什么)
create_system:创建压缩包的系统信息
create_version:压缩包的 PKZIP 版本信息
extract_version:解压需要的 PKZIP 版本信息
reserved:一定是 0
flag_bits:ZIP 标志位
volume:文件头的 Volume number
internal_attr:内部属性
external_attr:文件外部属性
header_offset:文件头偏移量
CRC:压缩前文件的 crc-32 值
compress_size:压缩后文件大小
file_size:压缩前文件大小

3、命令行接口

可以用以下格式直接在命令行下调用:python -m zipfile ...
“...”部分有以下几种格式:
-l <zipfile>:列出压缩包内文件
-c <zipfile> <source1> ... <sourceN>:把 N 个 source 文件压缩至 zipfile
-e <zipfile> <output_dir>:解压 zipfile 至目标路径
-t <zipfile>:检验是否为有效的 zipfile

Python2.7-zipfile的更多相关文章

  1. SaltStack实战

    SaltStack实战 #安装 安装注意几点 python-libs-2.6.6-64.el6.x86_64 conflicts with file from package python-2.6.6 ...

  2. python 安装 setuptools Compression requires the (missing) zlib module 的解决方案

    背景: 虚拟机centos下安装python辅助工具 setuptools报错,错误信息大概如下: Traceback (most recent call last): File "setu ...

  3. python安装途中遇到的问题和解决方法

    一.setuptools安装错误:RuntimeError: Compression requires the (missing) zlib module 1. 描述 搞了个腾讯云的服务器,闲在手上没 ...

  4. fadora24安装settools,pip包出错解决方法

    1.fadora24安装Python2.7 [root@dev ~]# python bash: python: 未找到命令... 安装软件包“python”以提供命令“python”? [N/y] ...

  5. Python安装setuptools时报Compression requires the (missing) zlib

    装机员为您提供Python安装setuptools时报Compression requires the (missing) zlib的文章咨询供您阅读,如何使用Python安装setuptools时报 ...

  6. 自动发布工具版本从python2升级成python3后遇到的种种问题(涉及paramiko,Crypto,zipfile等等)

    从在公司实习到正式入职,一直还在被同事使用的是我写的一个自动发布工具.该工具的主要功能是:开发人员给出需要更新的代码包(zip格式),测试人员将该代码包部署到测服,这些代码包和JIRA数据库里的项目信 ...

  7. Python之文件与目录操作及压缩模块(os、shutil、zipfile、tarfile)

    Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读取或写入 os.path模块 文件路径操作 os模块 文件和目录简单操作 zipfile模 ...

  8. 回味Python2.7——笔记4

    一.Python 标准库概览 1.操作系统接口 os 模块提供了很多与操作系统交互的函数: >>> import os >>> os.getcwd() # Retu ...

  9. python2/python3 内存中打包/压缩文件

    python2:(包含压缩选项,如果只打包,可以调整zipfile.ZIP_DEFLATED) import zipfile import StringIO class InMemoryZip(obj ...

  10. Python第二十天 shutil 模块 zipfile tarfile 模块

    Python第二十天  shutil 模块  zipfile   tarfile 模块 os文件的操作还应该包含移动 复制  打包 压缩 解压等操作,这些os模块都没有提供 shutil 模块shut ...

随机推荐

  1. WEB服务器、应用程序服务器、HTTP服务器的区别

    WEB服务器.应用程序服务器.HTTP服务器的区别 Web服务器: 基本功能就是提供Web信息浏览服务.它只需支持HTTP协议.HTML文档格式及URL.与客户端的网络浏览器配合.因为Web服务器主要 ...

  2. Unable to open debugger port (127.0.0.1:63777): java.net.BindException "Address

    困扰了我好久,试过删掉taget文件夹rebuild,不删除Tomcat Server配置手动修改端口号也不行,试过杀掉java进程和重启机器,但是就是没效果. 解决: 删除Tomcat Server ...

  3. 设计模式(21)--Strategy(策略模式)--行为型

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.模式定义: 策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而 ...

  4. crontab -让服务器执行定时任务

    1.启动服务 一般启动服务用 "/sbin/service crond start"就可以了,如果是root用户就是 "sudo service crond start& ...

  5. BZOJ5323:[JXOI2018]游戏

    传送门 不难发现,所有不能被其他数筛掉的数是一定要选的,只有选了这些数字才能结束 假设有 \(m\) 个,枚举结束时间 \(x\),答案就是 \(\sum \binom{x-1}{m-1}m!(n-m ...

  6. 水平方向margin:auto

    先上图   由图可看到,块级元素的水平方向上又"7大属性":margin-left.border-left.padding-left.margin-left.width.paddi ...

  7. Intellij idea Cannot start internal HTTP server.

    错误提示:Cannot start internal HTTP server. Git integration, JavaScript debugger and LiveEdit may operat ...

  8. Django. No changes detected when "makemigrations"

    在修改了models.py后,有些用户会喜欢用python manage.py makemigrations生成对应的py代码. 但有时执行python manage.py makemigration ...

  9. localStorage/cookie 用法分析与简单封装

    本地存储是HTML5中提出来的概念,分localStorage和sessionStorage.通过本地存储,web应用程序能够在用户浏览器中对数据进行本地的存储.与 cookie 不同,存储限制要大得 ...

  10. Hibernate中对象的三种状态及相互转化

    1. 瞬时状态 (Transient) 当我们通过Java的new关键字来生成一个实体对象时,这时这个实体对象就处于自由状态,如下:  Customer customer=new Customer(“ ...